实际需求是什么?怎样的性能要求?统计要求?可预测性要求?跨平台和依赖库要求?
无论如何c标准库的rand的接口是比较简陋的,很不容易用对。c++标准库的<random>就好多了,接口现代而丰富,通常统计用mt19937引擎,不可预测用random_device引擎就很好。密码学用的随机数都有自己的库,往往性能低一些,就是生成随机字节流。硬件相关的函数可能又快又好,比如rdrand这种。主流操作系统也都有自己的随机数,也主要用于密码学需求。
另外你的观察也并不准确,vc或gcc下rand使用的线性同余序列初值也不至于随种子递增,你的实验次数太少了。
【 在 sqsl 的大作中提到: 】
: 用的方法是:time()+srand()+rand()
:
: 虽然知道计算机无法生成真随机数,但这第一个数个也太假了吧,基本上第一个数正比
: ...................
--
修改:milksea FROM 124.64.16.*
FROM 124.64.16.*