Random C语言中的随机数#

Random C语言中的随机数#,random,number-formatting,Random,Number Formatting,我想显示一个随机的4位数字,不重复,我想在while环中回答一轮,在下面的代码中,第一轮是回答,第六轮是回答。 我想,至少绕着戒指回答 Random Number = new Random(); int Num1, Num2, Num3, Num4; int Index = 0; do { Num1 = NUmber.Next(0, 10); Num2 = NUmber.Next(0, 10); Num3 = NUmber.Next(0, 10); Num4 =

我想显示一个随机的4位数字,不重复,我想在while环中回答一轮,在下面的代码中,第一轮是回答,第六轮是回答。 我想,至少绕着戒指回答

Random Number = new Random();
int Num1, Num2, Num3, Num4;
int Index = 0;
do
{
    Num1 = NUmber.Next(0, 10);
    Num2 = NUmber.Next(0, 10);
    Num3 = NUmber.Next(0, 10);
    Num4 = NUmber.Next(0, 10);
    Index++;  
} 
while (Num1==Num2||Num1==Num3||Num1==Num4||Num2==Num3||Num2==Num4||Num3==Num4);
Console.WriteLine("{0}{1}{2}{3}",Num1,Num2,Num3,Num4);
Console.WriteLine(Index);
Console.ReadKey();

如果您在每次迭代中都需要随机的4位数字,其中数字是唯一的,请考虑使用洗牌算法。这样,数字就不会在单个生成的数字中重复,尽管每次迭代中的数字都可能重复

using System;
class App
{
  public static void Main()
  {
    int[] digits = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
    var rnd = new Random();
    while (true)
    {
      int i = 0;
      Swap(digits,i, rnd.Next(i+1, digits.Length)); i++;
      Swap(digits,i, rnd.Next(i+1, digits.Length)); i++;
      Swap(digits,i, rnd.Next(i+1, digits.Length)); i++;
      Swap(digits,i, rnd.Next(i+1, digits.Length)); i++;
      Console.WriteLine("{0}{1}{2}{3}", 
          digits[0], digits[1], digits[2], digits[3]);
      Console.ReadKey();
    }
  }
  static void Swap(int[] digits, int i, int j)
  {
    var t = digits[i]; digits[i] = digits[j]; digits[j] = t;
  }
}

请纠正你的语法,不清楚你在问什么。它是一个4位数的数字,每个循环迭代都有唯一的数字吗?