如何用C#产生两个随机数
Randomn1=newRandom();num1=n1.Next(0,100);Randomn2=newRandom();num2=n2.Next(0,100);是出了...
Random n1 = new Random();
num1=n1.Next(0,100);
Random n2 = new Random();
num2 = n2.Next(0, 100);
是出了什么问题,为什么总是产生了两个相同的随机数?应该怎么改? 展开
num1=n1.Next(0,100);
Random n2 = new Random();
num2 = n2.Next(0, 100);
是出了什么问题,为什么总是产生了两个相同的随机数?应该怎么改? 展开
3个回答
展开全部
在开发过程中,常常要产生随机数,如生成静态 html 网页时,文件名通常用产生随机数的方式获得,生成定单的时候,定单号也可以用产生随机数的方式获得等。
在 C# 中,一般都用 Random 产生随机数,它可任意指定产生随机数范围。Random 结合数组,可以产生一些特殊范围的随机数,以满足特殊的需要。
一、用 Random 产生指定范围随机数
1、产生指定上限的随机数(如产生100以内的随机数)
Random ran = new Random();
int n = ran.Next(100);
2、产生指定上下限的随机数(如产生100到1000的随机数)
Random ran = new Random();
int n = ran.Next(100, 1000);
二、用 Random 结合数组产生指定范围随机数
在某些情况下,随机数只能取一些特殊指定的值,如不连续的数字或指定的一些单词等,此时仅用 Random 无法达到要求,必须借住数组才能实现。实现思路大概是这样:先把这些特殊的值存到数组中,然后把数组的长度作为 Random 的上限产生随机数,此随机数正是数组的下标,根据该下标取得数组的值。
1、示例一
假如要产生不连续的随机数,代码如下:
public string GetRandom(string[] arr)
{
Random ran = new Random();
int n = ran.Next(arr.Length - 1);
return arr[n];
}
调用方法:
string[] arr = { "25", "28", "30", "50", "60" };
GetRandom(arr);
2、示例二
假如要用指定单词作为随机数的取值,代码实现跟示例一相同,所不同的仅是随机数的取值,所以只要定义一个单词数组直接调用上面代码即可。
调用方法:
string[] arr = { "red", "green", "blue", "orange", "white" };
GetRandom(arr);
以上两种产生指定随机数的方法,都通过测试,可根据实际开发需要灵活选择,一般情况都是直接用 Random 就可以了。
在 C# 中,一般都用 Random 产生随机数,它可任意指定产生随机数范围。Random 结合数组,可以产生一些特殊范围的随机数,以满足特殊的需要。
一、用 Random 产生指定范围随机数
1、产生指定上限的随机数(如产生100以内的随机数)
Random ran = new Random();
int n = ran.Next(100);
2、产生指定上下限的随机数(如产生100到1000的随机数)
Random ran = new Random();
int n = ran.Next(100, 1000);
二、用 Random 结合数组产生指定范围随机数
在某些情况下,随机数只能取一些特殊指定的值,如不连续的数字或指定的一些单词等,此时仅用 Random 无法达到要求,必须借住数组才能实现。实现思路大概是这样:先把这些特殊的值存到数组中,然后把数组的长度作为 Random 的上限产生随机数,此随机数正是数组的下标,根据该下标取得数组的值。
1、示例一
假如要产生不连续的随机数,代码如下:
public string GetRandom(string[] arr)
{
Random ran = new Random();
int n = ran.Next(arr.Length - 1);
return arr[n];
}
调用方法:
string[] arr = { "25", "28", "30", "50", "60" };
GetRandom(arr);
2、示例二
假如要用指定单词作为随机数的取值,代码实现跟示例一相同,所不同的仅是随机数的取值,所以只要定义一个单词数组直接调用上面代码即可。
调用方法:
string[] arr = { "red", "green", "blue", "orange", "white" };
GetRandom(arr);
以上两种产生指定随机数的方法,都通过测试,可根据实际开发需要灵活选择,一般情况都是直接用 Random 就可以了。
展开全部
Random会根据系统时间去随机,所以同时new两个Random有可能会产生一样的随机数,
改成只用一个Random对象就行了:
Random n1 = new Random();
num1=n1.Next(0,100);
num2 = n1.Next(0, 100);
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
把代码改成这样
Random n1 = new Random();
num1=n1.Next(0,100);
num2 = n1.Next(0, 50);
注意不同变量的后的Next取值范围不能一样。
Random n1 = new Random();
num1=n1.Next(0,100);
num2 = n1.Next(0, 50);
注意不同变量的后的Next取值范围不能一样。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询