C#中生成中国福利彩票36选7中7个不重复整数

来源:百度知道 编辑:UC知道 时间:2024/06/22 14:53:24
本人简单做了一个,但是运行总是CPU100%,没法生成整数。。。

System.Random ran = new Random();
int[] arry=new int[7];
for (int i = 0; i <arry.Length; i++)
{
where: arry[i]=(int)ran.Next(0,36)+1;
for (int j = 0; j <= i;j++ )
{
if (arry[i] == arry[j])
goto where;
}

}
textBox1.Text=arry[1]+"";
textBox2.Text = arry[2] + "";
textBox6.Text = arry[3] + "";
textBox4.Text = arry[4] + "";
textBox5.Text = arry[5] + "";
textBox6.Text = arry[6] + "";
textBox7.Text = arry[7] + "";
2楼的生成的有可能是重复的,36选7不能有重复的。

我这程序只用循环7次而已,就可以完成了
static void Main(string[] args)
{
int[] number = new int[36];///36个数

int[] newNumber = new int[7];///选出的7个数

int i,maxIndex = 35;

for (i = 0; i < 36; i++)///初始化0~35个数
{
number[i] = i;
}

Random rand = new Random();

for (i = 0; i < 7; i++)
{
///随机产生0~35之间的数作为下标
int index = rand.Next(0, maxIndex);
///把产生的下标里的值给新的数组
newNumber[i] = number[index];
///把产生下标的值和第maxIndex个值交换
int tmp = number[index];

number[index] = number[maxIndex];

number[maxIndex] = tmp;

maxIndex--;///自减1,避免下次产生的下标会重复
}

for (i = 0;