用"int x = rand() % 100;"来生成 0 到 100 之间的随机数这种方法是不或取的,
比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0)) 产生一个0到n之间的随机,RAND_MAX=0x7fffffff
分析:
1、假如rand()返回0~150之间的数
那么 rand() % 100生成0~50的概率,要大于51~99的概率
这里的RAND_MAX=150
这里的RAND_MAX=150
2、 C=rand()/(RAND_MAX+1.0)可以近似看作[0,1)之间的均匀分布
那么C*n的取值对0~n-1来说概率是相等的
365

被折叠的 条评论
为什么被折叠?



