4 Billion If Statements | Prime Reacts

  Рет қаралды 616,776

ThePrimeTime

ThePrimeTime

Күн бұрын

Пікірлер
@Sousa22ko
@Sousa22ko 11 ай бұрын
programmers in 1969: send a spaceship to the moon with only 4KB of RAM programmers in 2024: i need 30GB to check if a number is even or odd
@muhammadabdulsalam602
@muhammadabdulsalam602 10 ай бұрын
😂😂😂
@Mystery_Glitch
@Mystery_Glitch 10 ай бұрын
The power of optimization and deoptimization
@cewla3348
@cewla3348 10 ай бұрын
@@falconheavy595 yes. i wont argue it, but yes.
@MrAntiKnowledge
@MrAntiKnowledge 9 ай бұрын
You can't send a spaceship to the moon, you need a moonship for that, duh.
@shroomer3867
@shroomer3867 9 ай бұрын
The benefit of AI is that it would never write this. The drawback of AI is that it would never write this.
@davidjohnston4240
@davidjohnston4240 11 ай бұрын
Dynamic meta programming optimization - Take the number, write the single line of code to check that number to a file, compile it, run it.
@smanzoli
@smanzoli 11 ай бұрын
In case the challenge was "not to use aby math, just IFs" (not sure), we could just set a list like odd_array = [1,3,5,7,9] and check IF the last digit of the input number is in odd_array. Number is odd IF it is, else it's even. But it would not be funny and challenging, lol. Loved his solution.
@TJackson736
@TJackson736 11 ай бұрын
​@smanzoli depending if it is unsigned, you can just bit mask the least significant bit and check if it is equal to 1. If it is, return true in isodd. Else return false. This should also work with 2's complement representations as well. If we are going with all negative numbers are not odd, we simply have to check ifNegative before checking the odd process explained before.
@prodkinetik
@prodkinetik 11 ай бұрын
built-in caching by checking if the if statement already exists in the file before writing to it and compiling
@youtubeenjoyer1743
@youtubeenjoyer1743 11 ай бұрын
@@TJackson736 sounds like math. No math allowed
@anon-fz2bo
@anon-fz2bo 11 ай бұрын
​@@youtubeenjoyer1743 the math behid that is not that complicated, its more theory heavy tbh but yeah kinda genius ngl
@tukan1652
@tukan1652 11 ай бұрын
conclusion: 9:16 If windows says you can't compile a 40gb file you say yes you can
@ThePrimeTimeagen
@ThePrimeTimeagen 11 ай бұрын
never stop stopping
@lordender_kitty_official
@lordender_kitty_official 10 ай бұрын
but would other operating systems be chill with it? because we all know that windows is gay and everyone should convert to linux.
@cewla3348
@cewla3348 10 ай бұрын
@@lordender_kitty_official 1. homophobic intent, please fix yourself 2. bro who do you think uses linux???
@treanttrooper6349
@treanttrooper6349 10 ай бұрын
​@@cewla3348 how do you know he isnt gay?
@cewla3348
@cewla3348 10 ай бұрын
@@treanttrooper6349 because he’s using gay as a negative adjective, which is homophobic. Read his damn comment.
@dboss112
@dboss112 11 ай бұрын
I took my first programming class in high school and one of my assignments was to write a program that let you select a month/year and the program displayed the calendar layout for that month. I proceeded to write out every possible calendar layout for each combination of days in the month and starting day of the week all chained together with if statements. After a few hours of copy pasting calendars and moving around the numbers my program was ready to be printed and passed in. Yes my teacher graded our programs by hand with pen and paper. After several minutes of the printer chugging along nonstop my classmates began to notice the monstrosity I had created. My teacher was not happy when I handed in 100+ pages.
@andarba2148
@andarba2148 11 ай бұрын
He didn’t know what a loop was 🤣🫵
@dboss112
@dboss112 11 ай бұрын
​@@andarba2148 I think we learned loops the following week 😭
@tirushone6446
@tirushone6446 11 ай бұрын
bruh there is no way 💀
@fus132
@fus132 11 ай бұрын
@@dboss112 RiP
@ZeroUm_
@ZeroUm_ 11 ай бұрын
​@@dboss112I love stories where the teacher is the one learning lessons.
@nrwchd
@nrwchd 11 ай бұрын
paid by the lines
@grawss
@grawss 8 ай бұрын
"I've written over four billion lines of code." - Every programming resume ever.
@RubixCubed3
@RubixCubed3 11 ай бұрын
Using the slowest programming language to automate writing 4 billion if statements in the fastest programming language. That is gangster.
@Rio-zh2wb
@Rio-zh2wb 11 ай бұрын
Indeed
@aoeu256
@aoeu256 7 ай бұрын
actually haskell and especially lisp programmers build real-time programs by embedding low level languages, a high level representation, and building a compiler between the low level and high level representation.
@w0cker
@w0cker 11 ай бұрын
now make that an npm package for the world to depend on
@bekiraltindal9053
@bekiraltindal9053 11 ай бұрын
😂
@oleksiistri8429
@oleksiistri8429 11 ай бұрын
That's too cruel
@Rudxain
@Rudxain 10 ай бұрын
`node_modules` about to bloat harder than a black-hole with the mass of all observable galaxies
@abeidiot
@abeidiot 9 ай бұрын
now that is true evil
@reatcas
@reatcas 6 ай бұрын
For the universe to depend on
@db_2112
@db_2112 11 ай бұрын
I love that the guy used modulo in python to generate the first file
@davidboeger6766
@davidboeger6766 11 ай бұрын
The algorithm wasn't self-hosting yet. This article was about the bootstrapping process. Python will now replace its current implementation of % with this one and see 10x performance increases.
@KleptomaniacJames
@KleptomaniacJames 11 ай бұрын
@@davidboeger6766 a bit wise AND would be a far better implementation
@katrinabryce
@katrinabryce 11 ай бұрын
@@davidboeger6766 Do something along the lines of this 💁🏻‍♀ iseven = True for n in range(4294967296): print(n,"is even" if iseven else "is odd") iseven = not iseven Substitute in your actual code in the print statement.
@marko1395
@marko1395 10 ай бұрын
@@KleptomaniacJames The correct way is to go in batches of two. i is even, i + 1 is odd.
@MisterAssasine
@MisterAssasine 10 ай бұрын
before doing that I would first check if the compiler doesnt already do that for me and keep my good maintainable code@@KleptomaniacJames
@Slateproc
@Slateproc 10 ай бұрын
someone really saw Yandere-Dev's code and said "bet"
@emjizone
@emjizone 9 ай бұрын
3:30 *"What could go wrong?"* is really THE fundamental question that drives the entire IT industry.
@electrpaleo
@electrpaleo 11 ай бұрын
Now I needs a part 2 comparing the performance of a 4 billion switch statement
@Ipanienko
@Ipanienko 11 ай бұрын
Actually, it could be a lot faster if the switch statement gets compiled to a jump table.
@gregorymorse8423
@gregorymorse8423 11 ай бұрын
It would be a jump table with 4 billion entries one byte each as per how most compilers work. Obviously optimization could do bits or with two cases change to a conditional jump or even just recognize its simplifiable to a parity condition.
@rosomak8244
@rosomak8244 10 ай бұрын
@@Ipanienko No. Memory access times will kill the performance.
@icegiant1000
@icegiant1000 9 ай бұрын
That was the first thing out of my mouth, "Ya know, a switch statement would be faster..."
@Void_Dragon
@Void_Dragon 9 ай бұрын
"All unauthorized distribution of this source code will be persecuted to the fullest extent of the law" 💀
@imveryangryitsnotbutter
@imveryangryitsnotbutter 6 ай бұрын
The law: "Uh, the prosecution would like to plead guilty by reason of insanity, your honor."
@keshi5541
@keshi5541 6 ай бұрын
This code should be in the geneva convention of tools that shouldn't be used.
@aez1814
@aez1814 5 ай бұрын
persecuted or prosecuted lol
@davidboeger6766
@davidboeger6766 11 ай бұрын
Rust Programmer: Writes 4 billion if statements. Rust Compiler: "Cannot use moved value. Value moved in first if statement."
@emeraldbonsai
@emeraldbonsai 11 ай бұрын
Thats easy to solve just use python to put .clone() behind every one that will fix it
@zhongcena
@zhongcena 11 ай бұрын
Integers in Rust implement Copy. Meaning they shouldn't have that problem.
@Codotaku
@Codotaku 11 ай бұрын
A rust programmer would always use a match statement anyway
@BambeH
@BambeH 11 ай бұрын
​@@Codotaku time to match bool { true => { /* ... */ }, false => { /* ... */ }, }
@hanszotark5098
@hanszotark5098 10 ай бұрын
match and enumeration with assigned discriminate value is the recipe.
@eitanseri-levi2169
@eitanseri-levi2169 11 ай бұрын
YOU MIGHT NOT LIKE IT, BUT THIS IS WHAT PEAK ENGINEERING LOOKS LIKE
@kormannn1
@kormannn1 9 ай бұрын
Yandere sim dev style?
@emeraldbonsai
@emeraldbonsai 11 ай бұрын
In theory you could have several 1000 people try out this program then record all there inputs then reorganize the ifs so that more common numbers are higher up in the if list to optimize it
@meekrab9027
@meekrab9027 11 ай бұрын
Reminds me of the story Chandler Carruth told about optimizing some C++ code written by Ken Thompson: kzbin.info/www/bejne/pInEqZ5obN-qos0
@KariArgillander
@KariArgillander 11 ай бұрын
@@Бородатый-к2н definetly this. I would happy to give some memory to program so it can run faster.
@knutharald9814
@knutharald9814 11 ай бұрын
Apply some bitwise magic and the storage requirements go down to 0.5GB
@ironbard4901
@ironbard4901 11 ай бұрын
@@knutharald9814 ... what?
@MichaelPohoreski
@MichaelPohoreski 9 ай бұрын
@@Бородатый-к2нAside from 2 and 3 ALL primes have the form 6n+1 or 6n-1; no need to store _every_ number.
@Jadinandrews
@Jadinandrews 8 ай бұрын
You could achieve this by training 4 billion pigeons to peck a button if their number comes up.
@M_1024
@M_1024 7 ай бұрын
Hear me out: trained pigeons with robotic hands working for humans and producing goods while they live in paradise. Way better than AGI.
@real1cytv
@real1cytv 11 ай бұрын
I think theo said it best, when he said: Imagine showing this to a programmer 15-20 years ago. They would have an aneurysm.
@youtubeenjoyer1743
@youtubeenjoyer1743 11 ай бұрын
if it works, don't fix it
@gardian06_85
@gardian06_85 11 ай бұрын
because people actually cared about performance, and sizes back then (when the program must fit on a 1.4 MB floppy or you have to write an installer, size of everything mattered) we now live in a world where with a processor, memory, and busses run 400x faster still takes the same amount of time to determine if "hte" is a word or not.
@berniecat8756
@berniecat8756 11 ай бұрын
Yeah Gigabyte was not a unit of measurement back then so a 330 GB “program” is incomprehensible
@HrHaakon
@HrHaakon 11 ай бұрын
@@berniecat8756 In 2004? It would certainly be. We had DVDs back then which had 4.8 gigabytes.
@FLMKane
@FLMKane 11 ай бұрын
Um... Guys. 20 years ago was 2004. We had multi GB games back then. And 500gb hard drives. Halo 2 and half life 2 came out 20 years ago
@1thevm1
@1thevm1 11 ай бұрын
From the title I thought we'd be reviewing YandereDev's code lmfao
@zambumm
@zambumm 11 ай бұрын
why not create an api call to chatgpt for every number?
@macchiato_1881
@macchiato_1881 11 ай бұрын
What are you? Elon Musk?
@darekmistrz4364
@darekmistrz4364 9 ай бұрын
@@macchiato_1881Tesla's co-founder and CEO. Elon is inventor and maverick entrepreneur
@captainace1277
@captainace1277 8 ай бұрын
This is Elon Musk
@critamine
@critamine 7 ай бұрын
Careful, someone might steal your startup idea!
@CyborusYT
@CyborusYT 7 ай бұрын
@@darekmistrz4364 lmao he did not cofound tesla
@rave400v6
@rave400v6 8 ай бұрын
"And they call me a madman." "Who created 4 billions if statements. " "I'm a survivor. "
@justuseodysee7348
@justuseodysee7348 11 ай бұрын
This software is written and optimized for next gen hardware. You can't expect that your 10y old 4760k with 16GB of ram will be supported forever. This is unavoidable progress, it's time for an upgrade
@flipwonderland
@flipwonderland 8 ай бұрын
so true
@WHEELES
@WHEELES 7 ай бұрын
16 gb ram - a NOT old PC. Old PC - it's a max 8 gb. Yes, I use really old pc...
@NotAdachiPeople
@NotAdachiPeople 7 ай бұрын
@@WHEELESMe with 4G of RAM and a 5th gen i5
@tl5429
@tl5429 7 ай бұрын
​@@NotAdachiPeople Me with a 1GB ram laptop i found in the trash with who knows what processor
@cewla3348
@cewla3348 7 ай бұрын
@@tl5429just neofetch and google it?
@baranjan6969
@baranjan6969 9 ай бұрын
My favorite compiler. Python. Just as Ross van der Gussom envisioned.
@hungrymusicwolf
@hungrymusicwolf 11 ай бұрын
No matter how many times I hear this story I keep laughing out loud. This guy better be a writer as a side hustle.
@SpiritmanProductions
@SpiritmanProductions 6 ай бұрын
I kinda did the opposite, a much more compact program than you would expect: In computer studies at school (mid-80's), we were allowed to bring our own computers in if we had one. I had my ZX Spectrum and all the Commodore and Atari fanboys laughed. The teacher set a task to write the most interesting 1-line program that we could. Fortunately, not only was the Spectrum perfectly happy with multi-statement lines, you could actually Poke a 'return' address from an imaginary GoSub which was a line number and statement index. I can't remember what I made it do, but it was basically a whole simple program, with conditionals and branching, in one line. ;-)
@noobrebuilder8260
@noobrebuilder8260 8 ай бұрын
Average YandereDev script
@bumblebeegamerreal
@bumblebeegamerreal 6 ай бұрын
Like I swear, 4 billion if statements vs 1 if statement: number = int(input('Enter a number: ')) if (number % 2) == 0: print("Even") else: print("Odd") Seriously, mad respect to this guy for computing 4 billion if statements and wasting 330 GB of space for an odd/even number checker
@IsaacFoster..
@IsaacFoster.. 6 ай бұрын
I was looking for this comment
@RobTheQuant
@RobTheQuant 11 ай бұрын
windows leaves some of the memory mapped pages in RAM even after quitting the program. So next time you run the program, it does not have to load all of them from disk, that's the magic why it's faster than loading from the disk. On a cold start will be much slower.
@delta3244
@delta3244 10 ай бұрын
(40 - 32 Gb)/800 Mb s⁻¹= 10 s, so that explains it pretty neatly.
@davidthacher1397
@davidthacher1397 6 ай бұрын
@@delta3244 With page compression, maybe.
@thingsiplay
@thingsiplay 11 ай бұрын
What a Chad. Hats off, my dude.
@noredine
@noredine 11 ай бұрын
I'd have a foot pedal mapped to SHIFT if i was programming DirectX
@darekmistrz4364
@darekmistrz4364 9 ай бұрын
Genius
@Frommerman
@Frommerman 8 ай бұрын
I have left click mapped to my scroll wheel and all I do is play Old School Runescape.
@lancelotthefallen763
@lancelotthefallen763 8 ай бұрын
and then they will ask you, why you only train your left leg on leg days
@iyziejane
@iyziejane 9 ай бұрын
In 5-10 years the compiler will notice that you could optimize all this with a mod function. He's just ahead of his time.
@Sandromatic
@Sandromatic 8 ай бұрын
Ah but optimization was turned off. I wonder if the compiler *actually would* notice if optimization *was* turned on.
@Burgo361
@Burgo361 11 ай бұрын
This reminds me of some advice I got at uni, if you have to jump through a lot of hoops to do something you might be doing it wrong. (paraphrasing a bit here but it applies)
@1DJRikkiBee
@1DJRikkiBee 11 ай бұрын
True, unless you're trying to win a hoop jumping competition.
@robonator2945
@robonator2945 11 ай бұрын
Borrow Checker : "Finally, someone who appreciates my work!"
@robonator2945
@robonator2945 10 ай бұрын
​@@nathanielalderson9111 and I'm sure your users will appreciate that explanation when your software doesn't work because 'well the API to do the thing I'm trying to do is made in a way I find inconvenient, so until they refactor it how I want I'm not making anything' You can either complain about the world being imperfect or put in the work to make it better. You are the only variable that you can control, blaming external factors can't solve much of anything but it can break a hell of a lot. Sure, you *can* give european politicians the right to dictate the hardware on the devices you (and everyone else) are allowed to buy, or you can just stop buying from Apple - which of those routes has more knock-on cobras?
@robonator2945
@robonator2945 10 ай бұрын
​@@nathanielalderson9111 because the lifepsan of the joke is shorter than the length of time we've been churning out shitty sub-par software and it's quite hard to keep laughing all the while you keep getting kicked in the balls because it's always [someone-else]'s fault. More generally because this 'I'll just force the rest of the world to change because I know I'm right and don't need to rethink anything' philosophy is just plain really fucking annoying. Once yesterday's parody becomes today's philosophy it's kinda hard to laugh at the parody anymore.
@nathanielalderson9111
@nathanielalderson9111 9 ай бұрын
@@robonator2945 good grief man! Go away! Go take your bitterness and harshness elsewhere. No, seriously. Go get some therapy. Programming is always going to be a headache, and it really sounds like you either need to deal with some heavy stuff, or find a way to let it go. Aggressively attacking (with words) a random on the net just shows me that you also have the attitude of "I'll change the world because I'm right" attitude that you seem to think I have, from a freaky dumb joke. Go kick rocks.
@OneEyeShadow
@OneEyeShadow 7 ай бұрын
I like the idea that at the end of it all there's some variation of "else: return x%2==0" Just in case there are any numbers not covered by the 4gb if statement.
@privacyvalued4134
@privacyvalued4134 10 ай бұрын
The 4GB file size limitation in the Windows PE file format is an artifact of its design and also how the Windows loader handles loading binary files. However, you can load multiple EXEs and DLLs into main memory that are each up to 4GB in size. The Windows loader performs a LOT of work when it loads a PE file into memory, including spending time remapping addresses in the code section so that the code inside executes properly. So to get it to compile, they could have broken up the file into multiple 4GB DLLs and then...loaded all of them with each one dependent upon the next one.
@Sancarn
@Sancarn 11 ай бұрын
0:28 You should see some of the code I've seen in our core business critical systems...
@janbrtka4322
@janbrtka4322 11 ай бұрын
The logical evolution of this program would be, to publish it as a npm library which uses performant C library under the hood. I'd bet it would get 100k+ downloads within a year - if we figure out a nice, short and catchy name for it!
@HrHaakon
@HrHaakon 11 ай бұрын
StEven. Saint Even, written by Steven, answer the holy question: Is this thing even?
@Average-Lizard
@Average-Lizard 11 ай бұрын
Dang that’s bad…. Ever heard of a switch statement? That’d clean that right up
@Tntpker
@Tntpker 8 ай бұрын
"The CIA wants you to think ifelse is the same as switch" - Terry Davis
@kiwikemist
@kiwikemist 8 ай бұрын
Switch? What are we, gay?!
@wolverine9632
@wolverine9632 11 ай бұрын
Amazing solution! Now we just need a JS version so we can add this to npm!
@peterbonnema8913
@peterbonnema8913 11 ай бұрын
Imagine the CPU franticly trying to pre-execute all those alternative code paths right from the start.
@Jason9637
@Jason9637 9 ай бұрын
No need to pre execute, it's comparing a register with an immediate, so there is nothing to wait for, the only limitation should be how fast the CPU can load the code
@FLMKane
@FLMKane 8 ай бұрын
@@Jason9637 my dude. Most of us don't understand assembly so most wouldn't be able to predict that. But that means with 4 billion comparisons, there are 4 billion data chunks to compare, and assuming they're all integers that should mean each input for comparison is 4 bytes. That means 4 billion comparisons would result in 16 gigabytes of data flow through the CPU, which means you'd better have a lot of ram. I'm not even going to bother thinking about floats or strings
@Jason9637
@Jason9637 8 ай бұрын
@@FLMKane That's not at all how this works. The CPU doesn't need to store every value in system memory then wait for it. Maybe it would be helpful to learn the basics of assembly (it's really not that hard)
@CCCW
@CCCW 11 ай бұрын
this is absolutely deranged, and I mean in in the best possible way. I love it
@darekmistrz4364
@darekmistrz4364 9 ай бұрын
Pushing the limits of computing!
@Cethris
@Cethris 11 ай бұрын
That article is a work of art
@nox5282
@nox5282 11 ай бұрын
I’m ashamed to say, it took me a few rewatches until I grasped every step in this article.
@darekmistrz4364
@darekmistrz4364 9 ай бұрын
Most important is that you enjoyed it (probably?)
@hodayfa000h
@hodayfa000h 11 ай бұрын
This code is STILL more efficient than the code game devs make today
@energistixgames
@energistixgames 8 ай бұрын
I love how those programs that generate the code to check if the number is odd or even, always have a "x % 2 == 0" somewhere
@kmcat
@kmcat 6 ай бұрын
2:26 I love it, the solution is there.
@moharexx3128
@moharexx3128 10 ай бұрын
still faster than python
@karaczan5839
@karaczan5839 7 ай бұрын
Python programers when they see this: 😡😡😡😡😠👺👺👺👺🤬🤬😡🤬👺👺👺👺😡🤬🤬🤬🤬👺🤬🤬👺😡😡😡😠😠😡😠😠😠
@rubansrirambabu7771
@rubansrirambabu7771 7 ай бұрын
"Can we have O(1) code mom?" Mom: "We have O(1) code at home" The O(1) code:
@KrisRogos
@KrisRogos 10 ай бұрын
I strongly suspect the speed came from the CPU's branch prediction. After a few iterations, it would realise all previous cases are false and start pre-loading page after page of the code for the false paths only. Eventually, when the correct number rolled around, it would be true and, therefore, a prediction miss, but it only needs to go back and re-evaluate the true branch once and then quit the program.
@Garlic_Bread69
@Garlic_Bread69 6 ай бұрын
In assembly, you can actually check if a number is odd, with one operation (or two if you want to store it as a bool and not just do a conditional jump)
@Kuratius
@Kuratius 8 ай бұрын
You don't even need modulo for this. Bit mask the input with bit wise & 1 and checking if it's >0 works. Probably faster than running the division instruction that gets run when you do a modulo operation.
@williamdrum9899
@williamdrum9899 7 ай бұрын
That's how modulo is actually implemented- bitwise ands for powers of 2 and "magic number" multiplication for the rest
@estranhokonsta
@estranhokonsta 10 ай бұрын
Wow. That was fun. Reminded me of what programming was all about when i was younger. That guy deserves respect.
@niks660097
@niks660097 7 ай бұрын
7:28 WIN32 and their handles, messages, dwords was designed by a polish engineer who first introduced the idea of dynamically defining APIs with just prefixes.
@sergokovaltsov3427
@sergokovaltsov3427 11 ай бұрын
That's some NPM worthy algorithm. Hats off
@Tobsson
@Tobsson 11 ай бұрын
Couldnt stop thinking that finding this as an npm package would not seem unimaginable to me.
@BillyHudson1
@BillyHudson1 8 ай бұрын
I love chat jippity
@lxmcf
@lxmcf 11 ай бұрын
The person who rote the article woke up and chose violence with no witnesses, 11/10
@kiyopawn
@kiyopawn 5 ай бұрын
I once did something that could be done in 50 lined but in 1000 to piss off my teacher. It's in c++, where instead of using "for" or "++", I wrote each line checking each possibility one by one. I even wrote "arc names" for each area of code.
@andriychuck1194
@andriychuck1194 18 күн бұрын
it would be founny if you also used loop in some other place, showing that you know how to do it.
@hoodiegal
@hoodiegal 7 ай бұрын
If you were to write these 4 billion if statements by hand, and you are able to write one per second, it would take almost 32 years of active work to finish this program.
@tuureluotonen1631
@tuureluotonen1631 7 ай бұрын
More like 126 years. 4 billion ÷ 60 ÷ 60 ÷ 24 ÷ 365 ≈ 126
@hoodiegal
@hoodiegal 7 ай бұрын
@@tuureluotonen1631 Yep, I messed up, 1 billion second is just under 32 years. I forgot to multiply by 4 lmao.
@whiskeytuesday
@whiskeytuesday 11 ай бұрын
Why are we calling Guido van Rossum Ross van der Gussom? Is this a meme i missed?
@VodShod
@VodShod 7 ай бұрын
7:25 I think you should get a pedal that you can map to a specific button like caps lock and/or shift, that way you are not causing problems with your hands. After all your feet are just laying around being lazy.
@christophmuller3511
@christophmuller3511 6 ай бұрын
Reminds me of my attempt of writing the least efficient LED blink program by filling all the memory of the 8051 uC except for the very first and last instruction with “NOP” - which resulted in the IDE corrupting the project file…
@thygrrr
@thygrrr 11 ай бұрын
I think you could short-circuit this and jump directly to the address where the comparison for the input number is done. Then, you can pre-compute the result. Then, you can pack this, because the result is always just a bit. PROFIT!
@Oler-yx7xj
@Oler-yx7xj 11 ай бұрын
This is essentially a lookup table, which is essentially a switch-statement, which is definitely not 4 billion if-statements
@aeghohloechu5022
@aeghohloechu5022 11 ай бұрын
The thing is that he specifically turned off all optimisations, otherwise the if blocks would have gotten compiled down to jump tables
@adamrak7560
@adamrak7560 11 ай бұрын
You all laugh at this, but some form of this is actually _really_ highly performant for ab-initio quantum chemistry. It has really complicated numerical algorithms for the integrator, which if unrolled may be gigabytes of code, but the unrolled code runs on GPU an order of magnitude faster.
@Jake9066
@Jake9066 11 ай бұрын
Here I was thinking an "is-even" would be done well enough just by returning the inverse of the final bit of the number. This is so much better!
@IsaacFoster..
@IsaacFoster.. 6 ай бұрын
You guys are saying it's yandere-dev code, nah man. This dude made the entire code in assembly, making it crazy efficient to the point those billions of if statements ran in 10 seconds. His compilers said it's impossible, he said "why not possible, you stupid bastard"
@onanahavannaa4554
@onanahavannaa4554 11 ай бұрын
Aint no way even as a beginner i ain't writing that much if statements. Too lazy
@jerichaux9219
@jerichaux9219 11 ай бұрын
If you wrote one entire if statement per second, it would take you 138 years.
@FlorianWendelborn
@FlorianWendelborn 11 ай бұрын
@@jerichaux9219 that’s a short time to finally solve isEven
@PristinePerceptions
@PristinePerceptions 11 ай бұрын
You write a program to generate the program. Simple 🙂
@prukenope
@prukenope 11 ай бұрын
You come the right way. If you're lazy, you can make a great code lol
@AxidoDE
@AxidoDE 9 ай бұрын
And now we just need another 4 Billion of these and another function that determines which of them to use to get a universal modulo function. It's just that easy.
@GRHmedia
@GRHmedia 7 ай бұрын
Hmm, I think we can go larger, we use compression to store the machine code pull out the section we need and set the instruction pointer to it. What could go wrong. Or maybe we could generate the next if statement at the end of the last one.
@grex2595
@grex2595 11 ай бұрын
Modified this for fun. Did a while loop with with a fll where the odd node pointed to the even node and vice versa and just moved to the next node and added one if the number didn't match. Not as impressive, but still a fun way to do it in the spirit of doing almost no math.
@DankMemes-xq2xm
@DankMemes-xq2xm 6 ай бұрын
*ahem* For those new to programming, the correct way to check if something is odd in Python is: listNum = list(num) odds = ["1", "3", "5", "7", "9"] if listNum[-1] in odds: return "Odd" else: return "Even"
@mzhvis
@mzhvis 11 ай бұрын
"This is where the machines can rise up" 😂
@sammyb3323
@sammyb3323 6 ай бұрын
I came across this problem myself, I sufficed for mod 2 like any other normal person, 1 line to read number, an if statement to determine what the result of mod 2 of the input was *dab*
@georgecop9538
@georgecop9538 11 ай бұрын
6:14 We need long long long(or int128_t I suppose). what exfat and ntfs, if an fs could support 2 ^ 128 - 1 bytes/blocks/etc. then it's next level
@piotrprs572
@piotrprs572 8 ай бұрын
it's OS 'magic'.. that jump multiple block of mapped memory, to find a proper one. Mapped file is used by Memory Manager and split into blocks to fast access. Also ALL 'if' are linear, so system can do proper predictions. It will take much... much longer if this "if"s ware more random.
@da40au40
@da40au40 10 ай бұрын
1:47 😂. the way he said what he said gives me chills.... this guy is the coldest and most badass KZbinr😂
@noyza2132
@noyza2132 7 ай бұрын
for the problem you mentioned at 7:25 - consider getting a shift key foot pedal.
@markusjohansson6245
@markusjohansson6245 9 ай бұрын
Funny ;-) Reminds me when I started to learn to program using the manual for C64 back in the days. I wrote a text-based adventure game using like only if, goto, print and input. Storage took up two sides of a cassette tape and the game wasnt long at all. Nevermind that when you played you had to type in the exact correct string to move on in the game.
@illoominate
@illoominate 11 ай бұрын
Could optimize by making a routine is_even that returns 0 or 1. if (n == 0) return 1; if (n == 1) return 0; if (n == 2) return 1; // ... continue thru 2^32-1 Then main just does: printf("%s ", is_even(n) ? "even" : "odd"); That'll save a lot of compile time and memory by avoiding repeated string constants. The optimizer might unify the strings automatically, but still costs a lot of compile time which is easily avoided. The great thing is he has great tooling with his code generator, so it's easy to change!
@illoominate
@illoominate 11 ай бұрын
Another optimization would be binary search! He could have his code generator produce the nested ifs.
@illoominate
@illoominate 11 ай бұрын
Oh, and then handle negative numbers with single "if" up front, calling is_even with the absolute value. Then the code will be production ready.
@illoominate
@illoominate 11 ай бұрын
Oh dude, I just thought of something! Just return (n ^ 1). Ah hell that's no fun though.
@JordanMetroidManiac
@JordanMetroidManiac 5 ай бұрын
Wouldn’t the slowest language actually be Ruby or Lua?
@MarcCastellsBallesta
@MarcCastellsBallesta 11 ай бұрын
Loving these challenges!
@tutacat
@tutacat 10 ай бұрын
When dealing with python nesting limitations, all you need to do is believe. Convert it to single if statements, when when Python still says no, write your own mapping python interpreter in C (or python)
@chrisclark5746
@chrisclark5746 8 ай бұрын
Laughed so hard I almost snorted my coffee :-) classic episode, thanks again primeagen
@danielphil80
@danielphil80 11 ай бұрын
0:17 who researches social media?........3:30 What could go wrong? A good question to ask yourself if you are to think outside the box. It's the greatest question to ask. Among the six honest men. Dale Carnegie - stop worrying
@darkquaesar2460
@darkquaesar2460 9 ай бұрын
This is the funniest goddamn thing i've seen all week. People don't even know how efficient if statements are compared to switch statements or even if else statements.
@alex_hey
@alex_hey 5 ай бұрын
Missed the first step in TDD. Needed to write tests for all 4 billion cases.
@waperboy
@waperboy 8 ай бұрын
Once worked with guy, we were supposed to convert data to a flexible third-party api, and different customers had different needs. He started coding, and his approach was code with lots and lots of if-statements. I had to step in and build a more abstract per-customer configurable solution that didn't involve hundreds of if-statements per customer. But I'm sorry I had to watch this to the end... :-/
@bruxinth4660
@bruxinth4660 6 ай бұрын
“Are these the world’s crispiest fries? Let’s find out.” :Starts evaluating with this program and sits there waiting for an answer until video abruptly cuts off (stream ended with blue screen: memory overflow):
@danielvest9602
@danielvest9602 7 ай бұрын
I was actually naive enough to attempt something like this. Around 1992 I began learning C. My only experience before this was with gwbasic. I wanted to display a bit maped picture and wrote a basic program to create a C source that was just a bunch putpixel calls, one for each pixel of a 640x480 image.
@bug5654
@bug5654 8 ай бұрын
Reminds me of making PHP code that wrote javascript functions for each column dynamically based on the type of column because javascript didn't like polymorphic sorts.
@0smannnn
@0smannnn 6 ай бұрын
Basically a Yandere dev coding style.
@aidynladouceur8369
@aidynladouceur8369 8 ай бұрын
This might be my new favorite piece of programming media ever
@averytheloftier
@averytheloftier 10 ай бұрын
having not yet finished the video I think the solution to the line limit problem is fairly obvious. make separate executables for each possible number. convert the number to a string and then call the file associated with that number.
@HimanshuSharma-sd5gk
@HimanshuSharma-sd5gk 6 ай бұрын
i can imagine the cpu pipelining and branch prediction dying there in cold blood.
@Chrome_Cat
@Chrome_Cat 7 ай бұрын
Whilst on the topic of bad solutions. You could do it with recursion. Define base cases, and subtract 2 till we get to the base cases.
@tetsuoshiva
@tetsuoshiva 9 ай бұрын
The assembly version returns after finding the value though, it's not the same code as the C version that keeps comparing every value.
@rika0729
@rika0729 9 ай бұрын
fun fact... u cn write a 3-4 line code to get that abomination of aa list of IFs.. and then copy paste it in the code to quickly write thousands of lines of code
@Jeremyak
@Jeremyak 6 ай бұрын
00:38 Exactly, my favorite thing to do with the internet is to make jokes like this one and watch the presumably "smart" people not get it and go into full meltdown mode, it's glorious.
@BusinessWolf1
@BusinessWolf1 8 ай бұрын
Say what you will about deoptimization but it's allowing us to make a whole lot of technology. And we're also looking backward and optimizing ground-up whilst keeping the knowledge of what's possible which we gained by shipping to production on save, and saving on alt tab.
@imblackmagic1209
@imblackmagic1209 10 ай бұрын
i would've tried to make multiple dlls to call from the main program, so we check every number every time, just in case, one can never be too sure
@Katsaguro
@Katsaguro 8 ай бұрын
My first thought would be reading the final bit of the input's binary code, 0 even 1 odd. This man went above and beyond with his dedication to one method.
@alexeyklepikov2770
@alexeyklepikov2770 11 ай бұрын
These articles are so fun and very well written compared to the geniuses at the ny post who came up with such bangers as “Reddit user praised after refusing to swap airplane seats with pregnant woman”
@finesseandstyle
@finesseandstyle 11 ай бұрын
I have done something like this for uni cause I wanted to do a little trolling, I created a python script that generated files where it stored the result for calculations like (1.1.txt), if I selected the addition operation it would return 2. And I stored 4 giant folders for every result of operation lmao
@alexander-yermolenko
@alexander-yermolenko 10 ай бұрын
I am just new in programming(start in the end of 2022 with C++, and now from November 2023 use C#), but that sounds so crazy😵
50 BILLION MESSAGES PER DAY WITH 32 ENGINEERS | Prime Reacts
14:58
ThePrimeTime
Рет қаралды 567 М.
MAXIMUM CRINGE Programming Language Tier List | Prime Reacts
22:45
ThePrimeTime
Рет қаралды 611 М.
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН
Cheerleader Transformation That Left Everyone Speechless! #shorts
00:27
Fabiosa Best Lifehacks
Рет қаралды 16 МЛН
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
why are switch statements so HECKIN fast?
11:03
Low Level
Рет қаралды 435 М.
Why I Use C | Prime Reacts
13:00
ThePrimeTime
Рет қаралды 187 М.
Odinmade Hero / Day 72.2 / Proper 3D Inclusion Tests
42:07
JamDeezCodes
Рет қаралды 109
Firing Our Top Talent Was The Best Decision Ever | Prime Reacts
23:19
The purest coding style, where bugs are near impossible
10:25
Coderized
Рет қаралды 1 МЛН
When Optimisations Work, But for the Wrong Reasons
22:19
SimonDev
Рет қаралды 1,1 МЛН
5 Signs of an Inexperienced Self-Taught Developer (and how to fix)
8:40
Why You Shouldn't Nest Your Code
8:30
CodeAesthetic
Рет қаралды 2,8 МЛН
When Your Game Is Bad But Your Optimisation Is Genius
8:52
Vercidium
Рет қаралды 1,6 МЛН
computers suck at division (a painful discovery)
5:09
Low Level
Рет қаралды 1,7 МЛН
Tuna 🍣 ​⁠@patrickzeinali ​⁠@ChefRush
00:48
albert_cancook
Рет қаралды 148 МЛН