问题
I have been researching the source code of Rand() for a while, but until now I couldn't figure out the whole picture of the function.
The following are the source codes found and researched by me:
rand.c
random.c
Could somebody provide some advices or assistance for me?
Thanks a million!
回答1:
It's not required to be based on any specific algorithm but many will use a linear congruential algorithm to generate the sequences. This basically changes the seed along the following lines:
seed = (seed * multiplier + adder) % modulo
and then deliver some portion of the seed as a random value. The values for multiplier, adder and modulo can vary quite a bit.
回答2:
Rand is based on several things like mac address which should be unique on every machine. there are several implementations to verify that the returned value is "random"
来源:https://stackoverflow.com/questions/30161790/what-algorithm-is-rand-based-on-in-c-language