What algorithm is Rand() based on in C language? [

2019-09-08 18:59发布

This question already has an answer here:

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!

2条回答
\"骚年 ilove
2楼-- · 2019-09-08 19:47

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"

查看更多
成全新的幸福
3楼-- · 2019-09-08 19:55

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.

查看更多
登录 后发表回答