gpt4 book ai didi

c# - C#中的3位随机数

转载 作者:太空狗 更新时间:2023-10-29 23:54:30 24 4
gpt4 key购买 nike

是否有比以下方法更好的生成 3 位随机数的方法:

var now = DateTime.Now.Ticks.ToString(CultureInfo.InvariantCulture);
string my3digitrandomnumber = now.Substring(now.Length - 7, 3);

谢谢..

最佳答案

是的 - 您当前的代码根本不是随机的。它基于系统时间。特别是,如果您同时从多个线程使用它 - 或者甚至在同一线程中快速连续多次使用它 - 您每次都会得到相同的数字。

你应该使用 RandomRandomNumberGenerator (哪个更安全)。

例如,一旦您获得了 Random 的实例,您可以使用:

int value = rng.Next(1000);
string text = value.ToString("000");

(假设您希望将数字作为文本。如果您想要保证为三位数字的整数,请使用rng.Next(100, 1000)。 )

但是,关于 Random 有一些警告:

  • 不想每次使用时都创建一个新实例;除非您指定种子,否则这也是基于时间的
  • 不是线程安全的

所以理想情况下,您可能需要每个线程一个。我的article on randomness对此进行更多讨论并提供一些示例代码。

关于c# - C#中的3位随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14465661/

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