All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Algorithms
Random Number Generator (Posted on 2004-06-08) Difficulty: 3 of 5
A particular random number generator returns positive integer n with probability 1/(2^n). (ie '1' with probability 1/2, '2' with probability 1/4, '3' with probability 1/8, etc.)

Using this random number generator, write an algorithm which chooses a random integer from 1 to 37 with equal probability.

See The Solution Submitted by Brian Smith    
Rating: 2.0000 (1 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
re(2): Implementing Thalamus's 47-bits with Brian Smith's bit-stream. | Comment 24 of 27 |
(In reply to re: Implementing Thalamus's 47-bits with Brian Smith's bit-stream. by Brian Smith)

Brian is absolutely correct.  And I believe Charlie didn't account for it in his algorithm, unless I missed it.

It amounts to throwing away the 47 bits whenever it goes higher than 37^9.  (In my original posting I wrote that this won't happen 92.3% of the time.)  In the other 7.7% of the time, we must throw away the 47 bits, and start over.

This decreases the efficiency a bit, but is still relatively efficient.

Edited on June 16, 2004, 3:06 pm
  Posted by Thalamus on 2004-06-16 14:42:14

Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (18)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2024 by Animus Pactum Consulting. All rights reserved. Privacy Information