jsfisher
ETcorngods survivor
- Joined
- Dec 23, 2005
- Messages
- 24,532
... Over time, they do in fact converge on an average 50/50 distribution, just as we'd expect.
The worst part of this is, the byte array he downloaded already proves the point raised in the OP: Divide those bytes by where they fall on the number line relative to 127, and we see that there's an almost perfect 50/50 split. This is exactly the prediction that acbytesla made, and that Leumas is responding to in the OP.
No they do not... and that is proven by anyone who has tried to run the app
Very early in the text, The Art of Programming, Volume 2, the author presents his whiz-bang algorithm for (pseudo-)random number generation. Starting with a standard random number generator approach, it continued with a collection of manipulations to compound the randomness with some steps in the algorithm selected at random just to compound the randomness even further.
Truly this would be a fantastic random number generator with all its random randomness.
...'cept it wasn't. And that really was the point.
In all seriousness, I think you are focusing too much on the whole "true" random number generator thing. The pseudorandom number generator provided by the standard Javascript implementations is actually very good. Your attempts to introduce atmospheric noise data is problematic and not likely to produce a clean result. On the other hand, the PRNG function is well behaved and robust.
Your app is incapable of proving anything. It is a demonstration. It implements a simplified model of coin-flipping. The quality of the coin-flipping simulation depends directly on the correctness of the model and the algorithms used to implement it (including that for random number generation).
But proof? Not a chance.
(See what I did there?)
That's a keeper.
...
But... let's see if you can answer these questions
Let's say that one picks the 20th card from the right side of a shuffled and spread out deck of cards every time.
That is not just deterministic... it is not even random
But the deck is shuffled before one picks the 20th card from the right.
Now the deck is not even random numbers... it is the same deck of cards... no?
Do you think anyone can determine whether a red (diamonds/hearts) or black (clubs/spades) card will be drawn??
So
- We have the same deck of cards... no random numbers or changing at all.
- We have the same card position picked every single time... not random or not even unknown... fully determined
- But the cards deck is shuffled before every pick... from the same deck... from the same position
Is the resulting pick (red or black) random?
Is it deterministic? If you say yes... then by whom or what?
.
My understanding is the following:
<snip rehashed stuff>
Let's say that one picks the 20th card from the right side of a shuffled and spread out deck of cards every time.
That is not just deterministic... it is not even random
But the deck is shuffled before one picks the 20th card from the right.
Now the deck is not even random numbers... it is the same deck of cards... no?
Do you think anyone can determine whether a red (diamonds/hearts) or black (clubs/spades) card will be drawn??
So
- We have the same deck of cards... no random numbers or changing at all.
- We have the same card position picked every single time... not random or not even unknown... fully determined
- But the cards deck is shuffled before every pick... from the same deck... from the same position
Is the resulting pick (red or black) random?
Is it deterministic? If you say yes... then by whom or what?
Very early in the text, The Art of Programming, Volume 2, the author presents his whiz-bang algorithm for (pseudo-)random number generation. Starting with a standard random number generator approach, it continued with a collection of manipulations to compound the randomness with some steps in the algorithm selected at random just to compound the randomness even further.
Truly this would be a fantastic random number generator with all its random randomness.
...'cept it wasn't. And that really was the point.
What is that point...
...
And why are you even rehashing this now... you already admitted the error of the above statement.
In all seriousness, I think you are focusing too much on the whole "true" random number generator thing. The pseudorandom number generator provided by the standard Javascript implementations is actually very good. Your attempts to introduce atmospheric noise data is problematic and not likely to produce a clean result. On the other hand, the PRNG function is well behaved and robust.
Yes... you are right... I was speaking not in a scientific "proof" (which science does not do)... but rather in DEBUNKING proof... just like science does by DEMONSTRATING the error.
My app debunks (the D in QED) his and your and everyone's claim that it "converges".... QED!!!
I am not surprised ...
It is strange you say that. When I run your app repeatedly, I see the running averages getting closer and closer to 50%. It is a bit of a noisy path, but it looks to be converging.
You app behavior is consistent with acbytelsa's statement. Debunking would be something else.
No they do not... and that is proven by anyone who has tried to run the app.
Your repeated assertion is proven incorrect by just running the app.... and repeating it over and over will not make it converge to a truth.
But moreover... I don't think you know the difference between converge and oscillate.
Over the series, the oscillations damp down, staying closer and closer to the 50/50 line. The oscillations converge on 50/50. Q.E.D.
No they do not... you are just bare asserting this... as evinced by running the app.
Had you run it at all you would have seen for yourself.
Try it... your bare assertions are proven wrong by FACTS.
You do not need even to do that... just THNINK about it...
If you do 10^9 flips and you get 50%... the very next flip... just ONE... will totally topple the thing over.... if you do 10 more and get 7 heads and 3 tails ... your done.
It will forver oscillate like this although you are correct it is closer to the 50%... BUT NEVER CONVERGES on it.
Maybe you can handwave that 10^90 might do it... but I would like to see yo do that... until you do it... it remains only logical that the very next flip will topple the whole thing.
You do know that every coin flip is not bound by what the previous 10,000,000,000,000 have done... right?
The next coin flip is not going to say... ah the previous ones all turned out so that one more head is needed and it will be 50% so I better comply and add my result to make it 50%.
Repeatedly bare asserting this error of yours will not ever make it converge to any truth.
.
Nope... that is not true... and is arrantly demonstrated by just running the app.... anyone who runs the app can see for themselves.
Eppur si muove.
Whichever app you run - yours, mine, jsfisher's - the running average of tosses over the series converges on 50% heads and 50% tails.
That's the result I got from runs of your app. That's the result you got from running my app. That's the result that acbytesla predicted. Q.E.D.
If you do 10^9 flips and you get 50%... the very next flip... just ONE... will totally topple the thing over.... if you do 10 more and get 7 heads and 3 tails ... your done.
It will forver oscillate like this although you are correct it is closer to the 50%... BUT NEVER CONVERGES on it.