return true
is correct around half of the time
assert IsEven(2) == True assert IsEven(4) == True assert IsEven(6) == True
All checks pass. LGTM
return Math.random() > 0.5
would also be correct about half the time
Wouldn’t that only be correct about 25% of the time?
for even, 50% chance of correctness, same for odd.
Zero people in this post get the YanDev reference
so nobody actually really got the joke. very sad Moment.
It’s really just us… I’ve seen the basic programming joke a bunch of times, but people really aren’t understanding the YanDev/font embellishment. Sad indeed.
I do :D
so did someone draw this by hand or was it a filter
tbh it looks like an AI broke this down slightly & reconstructed it
a wise programmer knows to always ask the question “can i solve this problem in python using metaprogramming?” in this instance, the answer is yes:
def is_even(n: int): s = "def is_even_helper(number: int):\n" b = True for i in range(0, abs(n)+2): s += f"\tif (abs(number) == {i}): return {b}\n" b = not b exec(s) return locals().get("is_even_helper")(n)
Gotta love how human readable Python always is!
Ask AI:
public static boolean isEven(int number) { // Handle negative numbers if (number < 0) { number = -number; // Convert to positive } // Subtract 2 until we reach 0 or 1 while (number > 1) { number -= 2; } // If we reach 0, it's even; if we reach 1, it's odd return number == 0; }
Anything but using modulo I guess
And bit operations (:
This makes me happy that I don’t use genai
I’m not sure how fucked up their prompt is (or how unlucky they were). I just did 3 tries and every time it used modulo.
I’m assuming they asked it specifically to either not use modulo or to do a suboptimal way to make this joke.
Using Haskell you can write it way more concise:
iseven :: Int -> Bool iseven 0 = True iseven 1 = False iseven 2 = True iseven 3 = False iseven 4 = True iseven 5 = False iseven 6 = True iseven 7 = False iseven 8 = True ...
However, we can be way smarter by only defining the 2 base cases and then a recursive definition for all other numbers:
iseven :: Int -> Bool iseven 0 = True iseven 1 = False iseven n = iseven (n-2)
It’s having a hard time with negative numbers, but honestly that’s quite a mood
Recursion is its own reward
If number%2 == 0: return("Even") Else: return("odd")
Deleted
if (!(number & 1))
if (~number & 1)
“If it’s not an npm package it’s impossible”
- JS devs, probably
That’s a lot of downloads
just check the least significant bit smh my head
I thought they were going to turn into Saddam Husseins.
=if((number/2)-round(number/2,0)=0,true,false)