作业帮 > 综合 > 作业

C语言,生成1到100间的随机数,下面两种方法有什么不同?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 07:26:06
C语言,生成1到100间的随机数,下面两种方法有什么不同?
1.(int)(100.0*rand()/(RAND_MAX+1.0))+1
2.rand()%100+1
假设第一次rand返回1010
第二次rand返回2010
rand_max假设为4000
1,100*(1010/4001)+1约等于100*(1/4)+1=26
2,100*(2020/4001)+1=51 约等于 100*(1/2)+1=51

3,1010%100+1=11
4,2010%100+1=11

第一个式子扩大了随机数波动对结果的影响
尽量选择第一个式子 使结果变得更随机性一些