gpt4 book ai didi

.net - Random.Next() 总是给出相同的结果

转载 作者:行者123 更新时间:2023-12-01 09:35:18 26 4
gpt4 key购买 nike

Possible Duplicate:
Random number generator not working the way I had planned (C#)

我在基本的 C# 编程方面经验丰富,目前正在制作滚轮。此应用程序最多可以滚动四个骰子。我遇到的问题是骰子总是产生相同的结果。我使用一种方法,其中随机数生成器生成一个从一到六的数字,然后选择适当的图片。我对每个图像框重复以下方法,因为允许用户输入他们想要滚动的骰子数量。我的问题是骰子每次都会生成相同的图片。我做错了什么?

    public Image displaypic(PictureBox box)
{
string picchoice;
int number;

Image picture = box.Image;

//Prevents Redundant Images
Image displaying = box.Image;
do
{
//picks a die to display
Random rand = new Random();
number = rand.Next(1, 7);

picchoice = number.ToString();

//select an image from the image selection method
picture = diepic(picture, picchoice);

}
while (picture == displaying);

//return image
return picture;
}

最佳答案

随机数并不是真正的随机数(它们被称为伪随机数)——它们是根据预先确定的算法选择的,该算法使用“种子值”来选择数字。默认情况下,这是 DateTime.Now.Ticks

您的应用程序运行得如此之快,以至于它对 Random 的每个实例都使用相同的种子。您可以通过在循环外实例化 Random 对象来解决此问题:

Random rand = new Random();
do
{
//picks a die to display
number = rand.Next(1, 7);

picchoice = number.ToString();

//select an image from the image selection method
picture = diepic(picture, picchoice);

}
while (picture == displaying);

有关此的更多信息,请参阅此处的“备注”部分:http://msdn.microsoft.com/en-us/library/ctssatww.aspx

关于.net - Random.Next() 总是给出相同的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9199459/

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