醒醒 c++的rand()%num,存在严重的不随机性,就你这个函数而言会在在767值处出现断层。具体原因比较复杂,我就简单的说吧,rand的返回值范围为 [0, RAND_MAX]。 在Windows环境下,提供的 RAND_MAX 一般为32767。也就是说,对于 rand() % 1000 来说,在3xxxx~32767这个范围里,如果取到 [0, 767] 这个范围的值,那么有3种情况:30xxx,31xxx,32xxx,而如果取到 [768, 999] 这个范围的值,就只有2种情况:30xxx,31xxx。
为什么说767是个阈值呢?因为767=32767%1000

你拿一个分布不均的随机数库函数来证明随机分布本来就是个伪命题,真要测试推荐使用c++11的的伪随机数生成器,或者干脆自己写个正态分布的伪随机数生成器也行
