我的理解是伪随机数生成器基本上只需要一些数字(种子),用一堆XOR和位移散列它,然后吐出一个非常长的数字,从中可以检索余数以获得"随机" "号码.
现在,通常你会time(NULL)在C/C++中用作rand()的种子.但是,time(NULL)每秒只增加一次,而不是每毫秒增加一次.那么,rand()如果种子仍然是相同的time(NULL)值,那么如何在不到一秒的时间内循环超过一千次并仍然可以得到不同的数字作为输出?
Bil*_*ard 11
rand()使用先前的随机值作为后续调用的新种子.这就是当您使用不同的种子值开始时将生成唯一的随机值序列的原因.
| 归档时间: |
|
| 查看次数: |
404 次 |
| 最近记录: |