G****A 发帖数: 4160 | 1 float random;
for(i from 0 to 50)
{
random = float(rand())/RAND_MAX;
if(random<(2.0/3.0))
{
if(random<(1.0/3.0))
{flow[i] = 300; }
else{flow[i] = 100;}
}
else{ flow[i] = 10;}
}
想让等于10/100/300的三种情况具有相等的出现概率,但是50组数字下来,感觉300比
10多好多,是不是程序有什么问题? |
D*****a 发帖数: 2847 | 2 试试500个数
【在 G****A 的大作中提到】 : float random; : for(i from 0 to 50) : { : random = float(rand())/RAND_MAX; : if(random<(2.0/3.0)) : { : if(random<(1.0/3.0)) : {flow[i] = 300; } : else{flow[i] = 100;} : }
|
k****f 发帖数: 3794 | 3 才50个数字,试试50,000个,应该差不多的
【在 G****A 的大作中提到】 : float random; : for(i from 0 to 50) : { : random = float(rand())/RAND_MAX; : if(random<(2.0/3.0)) : { : if(random<(1.0/3.0)) : {flow[i] = 300; } : else{flow[i] = 100;} : }
|
S*****n 发帖数: 227 | 4 你这个rand()产生的随机数序列是固定的。
一般用srand( time() )初始化一下比较好。
【在 G****A 的大作中提到】 : float random; : for(i from 0 to 50) : { : random = float(rand())/RAND_MAX; : if(random<(2.0/3.0)) : { : if(random<(1.0/3.0)) : {flow[i] = 300; } : else{flow[i] = 100;} : }
|
G****A 发帖数: 4160 | 5 thanks
【在 k****f 的大作中提到】 : 才50个数字,试试50,000个,应该差不多的
|