this post was submitted on 20 Jan 2024
331 points (98.8% liked)

xkcd

8623 readers
343 users here now

A community for a webcomic of romance, sarcasm, math, and language.

founded 1 year ago
MODERATORS
 

cross-posted from: https://programming.dev/post/8677292


Transcript:

[A computer program.]

int getRandomNumber()
{
   return 4; // chosen by fair dice roll.
             // guaranteed to be random.
}

Hover Text:

RFC 1149.5 specifies 4 as the standard IEEE-vetted random number.

top 15 comments
sorted by: hot top controversial new old
[–] LazaroFilm 38 points 8 months ago (1 children)

I prefer using a whole wall of lava lamps for a random number.

[–] [email protected] 10 points 8 months ago (1 children)

Seems like the place to share. Ages ago a group epoxied a webcam and used the random flashes (from cosmic rays?) as their source of randomness.

[–] [email protected] 14 points 8 months ago

I think what they're referring to is a company - I think it's CloudFlare - who use a bunch of physical randomness generators to seed their commercial random number generator. One of those seeds is a webcam pointed at a load of lava lamps.

https://youtu.be/1cUUfMeOijg

[–] [email protected] 21 points 8 months ago

Incredible, cracked the pseudorandomness problem with this simple code that guarantees a random whole number greater than 3 and less than 5.

[–] [email protected] 19 points 8 months ago (1 children)

Just update the code once a year to a different number, given long enough time the output will have a perfectly flat distribution.

[–] [email protected] 9 points 8 months ago (1 children)

I mean, how many random numbers can there even be?

[–] [email protected] 4 points 8 months ago

Not more than six, at least if you use a standard dice.

[–] captainjaneway 13 points 8 months ago (2 children)

I generate a random number and then use that number as a seed. I then generate a random number. Then I use that number as a seed. I then generate a random number. I divide that number by a random prime number picked in a similar fashion. I take the last n-digits of the remainder and that's the random number I give to a user.

[–] [email protected] 11 points 8 months ago (1 children)
[–] captainjaneway 8 points 8 months ago (1 children)
[–] Crashumbc 4 points 8 months ago
[–] [email protected] 7 points 8 months ago

That's already pretty cool! It surely does generate very random numbers. I still think you can take it a step – or a random number of steps, hah! – further by repeating the process a random number of times! Maybe this way we can reach maximum randomness. Probably need to reroll the number until it's big enough for that.

I would also check if the result is 4. If it's 4, it should be discarded. 4 is not an actual random number but a joke random number from a comic.

[–] [email protected] 3 points 8 months ago

Wasn't that then number always returned by the PS3 random number generator used in their DRM?

[–] [email protected] 3 points 8 months ago

And it’s indempotent!

[–] dog_ 1 points 8 months ago

Thanks PS3!