gpt4 book ai didi

vb.net - 调用 Rnd() 生成相同的数字

转载 作者:行者123 更新时间:2023-12-04 22:58:20 24 4
gpt4 key购买 nike

当我设置这段代码时,每次调试软件时,它都会生成相同的数字。谁能告诉我为什么会这样?

dim value as integer
value = (CInt(Int(100 * Rnd())))
messagebox.show(value)

因为它应该是随机的。
这是一个例子:(从上到下)
  • 我调试软件
  • 代码运行,并生成数字 70
  • 我停止调试
  • 我再次调试它,它再次生成数字 70

  • 这种情况一遍又一遍地发生,前两次我认为这只是运气,但是当我这样做了几次时,它总是回到 70(例如)。

    但是当我保持软件运行并一遍又一遍地运行代码时,通过使用一个按钮,它会生成完全不同的随机数。再次启动它,再次出现数字70。

    最佳答案

    你需要打电话

    Randomize()

    在调用 Rnd() 初始化随机数生成器之前。如果不这样做,每次运行该程序时,您都会得到相同的数字序列。

    例子:
    dim value as integer
    Randomize()
    value = (CInt(Int(100 * Rnd())))
    messagebox.show(value)

    原因是 Rnd() 将始终使用相同的种子来启动序列。如果你想阅读更多关于它的信息,这里有很好的解释: https://msdn.microsoft.com/en-us/library/8zedbtdt(v=vs.90).aspx

    关于vb.net - 调用 Rnd() 生成相同的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34644576/

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