| New Reply |
Randomization Question |
Share Thread | Thread Tools |
| Jul23-12, 01:47 PM | #1 |
|
|
Randomization Question
Hi,
I was looking into the mathematical aspect of what makes something 'random', but never asked about the programming view. What happens in a random function that generates an output? Although I still haven't found an answer to my question, I've decided to post it here hoping that I could get a clear and informative response (sometimes Google doesn't cut it). Thanks, Ryan |
| Jul23-12, 03:32 PM | #2 |
|
Recognitions:
|
A random function depends on the randomizer - usually it is a deterministic series with a very long repeat cycle. That's why you usually need to specify a "seed". For instance, if I use the rand() function in matlab for n data points, then repeat it twice, the three sets of results will be identical though they look random within each set.
Fancy systems use some physical method like the 10th decimal place in a sensitive temperature gauge of wind speed or something like that. In the bad old day we used to use a table of "random numbers" that you could buy. It came as part of a book of tables for all those other things you use a computer for now like sine and cosine and the normal distribution and logs. Randomizing algorithms are an important part of cryptography. |
| Jul23-12, 03:35 PM | #3 |
|
Recognitions:
|
Usual random number generators will produce a sequence of numbers (uniformly distributed between 0 and 1) which look random when various statistical tests are applied.
|
| Jul23-12, 04:30 PM | #4 |
|
|
Randomization Question
K&R (the original C programmers' textbook that started me down this dark path) provides this as the source code for rand ()
Code:
unsigned long int next = 1;
int rand(void)
{
next = next * 1103515245 + 12345;
return (unsigned int)(next/65536) % 32768;
}
edit: Being able to set the seed allows for debugging etc, by being able to guarantee the same results are returned. I note that it doesn't appear to be thread-safe :-) [edit: if your program spawns multiple threads for working concurrently, the value of next is shared by all] edit: Yes this is not regarded as current code. I know it's bad code. Don't all jump on me! :) |
| Jul24-12, 12:19 PM | #5 |
|
|
Wow, thanks for those informative responses! For some reason I didn't even consider seeds being a factor in programming these algorithms.
@rorix_bw: Thanks for the code snippet, I've been looking for the source code in other languages and wasn't successful. :P |
| New Reply |
| Tags |
| programming, question, random, randomization |
| Thread Tools | |
Similar Threads for: Randomization Question
|
||||
| Thread | Forum | Replies | ||
| vector calculus question relating to electrical dipoles (more of a math question) | Advanced Physics Homework | 1 | ||
| SRAM randomization? | Electrical Engineering | 2 | ||
| Centrifugal and centripetal force question: race-car and banked curve question | Introductory Physics Homework | 12 | ||
| finding randomization algorithm | Set Theory, Logic, Probability, Statistics | 16 | ||