How To Predict Random Numbers Generated By A Computer

preview_player
Показать описание


✨ Info
➜ Video Production time(Research to Output): 100-ish hours.
➜ About 2L of Almond milk & 3.5L of Gatorade were consumed during the video creation.

🎵 Track: Lost Sky - Dreams
Рекомендации по теме
Комментарии
Автор

Should I do a tutorial on time travelling? It’s ez bruh, 88 mph.

PwnFunction
Автор

never thought id have to make trust issues with random number generators

bertansadiki
Автор

Small correction:

“There’s no way for a traditional computer to generate a true random number because the entire system is deterministic.”

This actually isn’t true. Various systems within the computer chip generate entropy as they operate due to inefficiencies and heat generation and such. Computers can actually measure entropy generating hardware as a way of obtaining a true random number. These really are true random numbers since entropy is the randomness of the universe and is inherently unpredictable.

All computers running on modern x86 architecture (64 bit intel chips or any AMD chip since 2015) can run the instruction RDSEED, which probes entropy generating hardware to generate a true random number. The instruction is computationally expensive and takes many clock cycles to perform, so it’s recommended to be used as the seed of a pseudo random number generator rather than as a random number generator itself, hence the name RDSEED.

_king_me
Автор

What's really cool are the tool assisted speed runners who reverse engineer the games rng functions to pull off frame perfect runs.

bluesquare
Автор

I would like to note that flipping a coin is not a chaotic system. A chaotic system is a system with high sensitivity to initial conditions, not that there are many initial conditions. A real example of a chaotic system is a double pendulum.

purewaterruler
Автор

Just a small semantic correction: It is incorrect to say that cryptography doesn't use pseudorandom generators, it absolutely does. No computable generator can be, by definition, absolutely random. They can be, however, observably random. That does not mean that the generator is not pseudorandom, it means that there is no known function that can discriminate that generator from a truly random one (always speaking in terms of polynomial time) . If this were not the case, symmetric key generation would be either an uncomputable problem, or and insecurely solvable one.

thejuanpa
Автор

I had known about this that "It is impossible to create pure random numbers in computer science" but seeing it in practice as really cool. Your explanations are awesome. Keep it up.

SisirKumarPathy
Автор

This is probably one of the best approach to explaining an advanced concept in very simple terms and entertaining style.Thank you!Definitely following for more!

Centori
Автор

That's why we need a pseudorandom library that uses a variety of sources for seeding, other than the system clock. Stuff like current temperatures, microphone input (which is especially random in case of the cheap mics many people have that provide a lot of noise), mouse position at the time of setting up the seed, and any other sources of randomness you can think of. Also reseeding the generator every hour or so.

UltimatePerfection
Автор

Woah! Would've never expected to see Z3 make an appearance here, it is indeed really cool! (I work with SAT/SMT solvers on a daily basis)

adityasriram
Автор

If the risk were just in dependencies using Math.random, you could easily inject a mock/stub instead. The mock can throw an error if used, but it doesn't mean that it's used for the critical part. Also you can create a stub always returning 0 to see if the encryption libraries become predictable.

DuniC
Автор

This goes along nice with Liveoverflow's latest video. Good job!

twtrentrt
Автор

it designed that way so programmers can rerun test cases. Use a value Seed on every call to get random

gregheth
Автор

you can now predict random numbers? time to go to the casino!

le
Автор

Great animation! Very entertaining to watch. Randomness is real, not artificial, and is the combination of two or more similar values into a confined space. “A and B are equal in size, but are forced equally to fit spot C, which is only big enough for one of them.” The value C at the conclusion is random, and not dependent on systemic error.

An example is to count down to zero, but twice. The exact moment is indeterminate, because time keeps going, and no parts were favored. To compare why this is random, place two objects in-line on a track, and see who will come out ahead after many laps. The result is not inline, because each part is trying to win! The return of a function from time-dependency is called “seizing”, and can be implemented as an “LC-circuit”, or inductor-capacitor reforming array. Push energy into a capacitor, and see it try to escape at the earliest exact moment. When both arrays operate at the same time they’ll literally force on time to “let them pass”. The exact winner is therefore indeterminate, and this circuit produces a single bit of truly random information. Twenty bits will obliterate any form of computation developed by a mortal— you can crash the entire suite of any portal software: Windows, MacOS, Linus, Unix, etc. just by arranging those twenty bits somewhere on board. The operating system will find that electricity is too interested in a computation unrelated to the cpu-instructions and “hang”, or freeze, without any computation until a memory refresh takes place!

See “particle assembly, physics” for more information about random numbers and why flow of information yields the need for a “break” every now and then! Long post, hope you enjoyed it!

See Me for that information. I’ll find a way to help. Take care!

ChrisContin
Автор

Electronics always produce noise. In most cases this effect is undesirable and computers are designed to reduce its impact on their operation. But it is possible to go other way and amplify the noise to make true random generator inside computer. And this is exactly what is done in latest CPUs.

sdjhgfkshfswdfhskljh
Автор

And thats why cloudflare uses lava lamps (which are recorded by cameras) as their RNG :D

MirkoCrafter
Автор

We've been told that computer generated random numbers are not actually random, back in 2nd or 3d grade in computer class. That is a really cool knowledge to have. And actually mega OP compared to all the other computer class knowledge we got, especially that early. Always wanted to find out actually how this algorithm works. Quite cool. Good vid actually.

PlayerPaul
Автор

I tried the "Time Travel" option running multiple sleep(-10) but it didn't work. Do someone manage to make it working?

xbro
Автор

Several observations. First, not all computers represent floating point as defined by IEEE 754. Yes, most that you are ever likely to encounter do but there are exceptions. Secondly, this video is based on the supposition that each random number generated is dependent upon the previous numbers. If that is not the case then the predictor does not work. To show this, change the generator to use a new seed each time. The seed can be the system time, the time between inputs to the program. or any other value obtained in a manner that is not deterministic.

WatchesTrainsAndRockets