请问该用什么函数
我想给一个变量取值,取1的概率是10%,2的概率是20%,3的概率是30%,4的概率是40%
请问该怎么办
------解决方案--------------------int result=0;
int num = (new Rand()).Rand(0,10);
if(num<1)
{
num=1;
}
else if(num<3)
{
num=2;
}
else if(num<6)
{
num=3;
}
else if(num<10)
{
num=4;
}
------解决方案--------------------一楼的方法挺好的,不知道每次产生的随机数是不是一样.
用下面的方法,产生的随机数每次都不一样.
C#:
System.Random rand=new Random(DateTime.Now.Millisecond);
int num=rand.Next(10);
再用一楼的方法.
------解决方案--------------------System.Random rand=new Random(DateTime.Now.Millisecond);
for (int i = 0; i < 10; i = i + 1)//把 i = i + 1 改成 i++...
...
把随机发生器放到循环之外...伪随机发生器用相同的种子每次产生的随机数序列都是相同的...
另外你才循环10次,系统时钟在大约15毫秒之内都是一样的...
多看看书,搞清楚原理...
------解决方案--------------------