如何使c#随机数重复

时间:2015-05-19 19:22:02

标签: c# random numbers repeat

我正在尝试生成随机数组来测试我的家庭作业。 问题是生成的数字总是唯一的,我不时需要一些重复的数字。

以下是我提出的代码:

static int[] RandomIntArray()
{
    Random rnd = new Random();
    Console.Write("Enter array Length: ");
    int n = int.Parse(Console.ReadLine());
    int[] arr = new int[n];

    for (int i = 0; i < arr.Length; i++)
    {
        arr[i] = rnd.Next(short.MinValue, short.MaxValue);
    }

    return arr;
}

4 个答案:

答案 0 :(得分:3)

您可以为随机数生成器播种,因此它将始终生成相同的随机序列:

Do I need to follow directory structure to run a simple JSP ?

如果你想强制重复一些数字,你可以这样:

Random rnd = new Random(1/* Any seed value you want in here */);

答案 1 :(得分:2)

如果您希望数字偶尔重复一次,请缩小范围。他们更有可能导致重复。

    arr[i] = rnd.Next(0, 10);

答案 2 :(得分:0)

您希望重复数字的频率决定了您使用的方法。你可以随时将你得到的随机数舍入到最接近的10,100,直到&#34; bins&#34;足够大,以及&#34; bins&#34;尽可能经常出现。这类似于使@DLeh建议的范围更小,但它允许您将生成的数字扩展到更大的范围。

答案 3 :(得分:0)

如果使用相同的种子初始化随机数,您将始终获得相同的数字序列

Random rnd1 = new Random(5);
Random rnd2 = new Random(5);

for(var i=0;i<10; i++){
    Console.WriteLine(rnd1.Next() + ", " + rnd2.Next());
}