gpt4 book ai didi

c# - 在 C# 中的乐透游戏

转载 作者:太空宇宙 更新时间:2023-11-03 20:29:57 28 4
gpt4 key购买 nike

我正在尝试用 C# 制作某种游戏,它的乐透游戏有 10 列。计算机必须生成 6 个数字来填充那 10 列,我的代码如下:

public static int[] Get() 
{
int[] a = new int[6];
System.Random r = new System.Random();
bool flag; int val;
for (int i = 0; i < a.Length; ++i)
{
flag = false;
do
{
val = r.Next(1, 50);
for (int k = 0; k < i; ++k)
if (a[k] == a[i])
{
flag = true;
break;
}
a[i] = val;
} while (flag);
}
return a;
}
public static void Main()
{
int[] a;
for (int i = 0; i < 10; ++i)
{
a = Get();
foreach (int x in a)
Console.Write("{0} ", x);
Console.WriteLine();
}
}

但它给出的结果是一样的,比如

4 44 19 44 22 7
4 44 19 44 22 7
4 44 19 44 22 7
4 44 19 44 22 7
4 44 19 44 22 7
4 44 19 44 22 7
4 44 19 44 22 7
4 44 19 44 22 7
4 44 19 44 22 7
22 29 28 15 33 6

所以我的代码有什么问题。
谢谢

最佳答案

Random 类是从系统时间播种的。
当您连续生成大量 Random 时,它们最终将同时创建并使用相同的种子。

您应该在对 Get() 的调用中重复使用 Random 实例。

关于c# - 在 C# 中的乐透游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8024770/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com