最简单的改动就是:在设置完seed后,立即调用一次rand(),跳过第一个数。这样后续的数字就相对随机了。
另外,看上去rand()的实现确实比较简陋,可以考虑换其他函数。Linux下可以选择POSIX标准的random(),Windows下就不了解了。
再另外,C标准里 srand()这个函数的原型是没有返回值的,你这里怎么返回了个 start_num?这也是Windows的特殊之处吗?
https://en.cppreference.com/w/c/numeric/random/srand 【 在 sqsl 的大作中提到: 】
: 用的方法是:time()+srand()+rand()
: 虽然知道计算机无法生成真随机数,但这第一个数个也太假了吧,基本上第一个数正比
: 于时间戳。各位老师有啥好的办法嘛?弃用第一个数?用生成的第二个数?
: ...................
--
FROM 183.156.91.*