c#中的random函数

class Program
{
static void Main(string[] args)
{
int k1=0,k2=0;
k1 = chushi(k1);
k2 = chushi(k2);
Console.WriteLine(k1);
Console.WriteLine(k2);
Console.ReadKey();
}
static public int chushi(int k)
{
Random Rnd = new Random();
k = Rnd.Next(1, 12);
return k;
}
}
我想输出2个不同的数,调用了2次函数为什么每次输出结果k1,k2都一样?怎么改?

【Random Rnd = new Random(); k = Rnd.Next(1, 12);】
每次都是新建一个Random对象,而Random是从随机库里按顺序取出数来的,
所以每次都一样。

稍改动一下,用同一个Random对象即可。
static void Main(string[] args)
{
int k1 = 0, k2 = 0;
Random Rnd = new Random();
k1 = chushi(Rnd);
k2 = chushi(Rnd);
Console.WriteLine(k1);
Console.WriteLine(k2);
Console.ReadKey();
}
static public int chushi(Random tmp)
{
int k = tmp.Next(1, 12);
return k;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-04-11
C++ Builder中random()函数说明:
random
所在的头文件:stdlib.h
原型:int random(int num);
random函数返回一个0~num-1之间的随机数. random(num)是在stdlib.h中的一个宏定义. num和函数返回值都是整型数.

语法:
在arduino中
random(max)
random(min, max)
min - 随机数的最小值,随机数将包含此值。 (此参数可选)
max - 随机数的最大值,随机数不包含此值。( 数据类型为long )本回答被网友采纳
第2个回答  2009-11-28
int n=random.Next(10,21)
int n=random.Next(60,81)

楼上的说的有一点问题, 你要10-20, 那你后面一个参数应该是21的!
范围是: >=参数1, 而且 < 参数2
相似回答