Random C语言中的随机数#
我想显示一个随机的4位数字,不重复,我想在while环中回答一轮,在下面的代码中,第一轮是回答,第六轮是回答。 我想,至少绕着戒指回答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 =
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位数的数字,每个循环迭代都有唯一的数字吗?