草庐IT

c# - 生成随机的唯一值 C#

我已经搜索了一段时间并一直在努力寻找这个,我试图生成几个随机的、唯一的数字是C#。我正在使用System.Random,并且我正在使用DateTime.Now.Ticks种子:publicRandoma=newRandom(DateTime.Now.Ticks.GetHashCode());privatevoidNewNumber(){MyNumber=a.Next(0,10);}我定期调用NewNumber(),但问题是我经常收到重复的数字。有人建议因为我每次都在声明随机数,它不会产生随机数,所以我把声明放在我的函数之外。有什么建议或比使用System.Random更好的方法吗?谢谢

c# - 在 .NET 中生成所有整数的随机、非重复序列

.NET中有没有办法生成的序列?全部32位整数(Int32)以随机顺序,没有重复,并且以内存高效的方式?内存高效意味着最多只使用几百兆字节的主内存。理想情况下,序列应该类似于IEnumerable,并且仅在请求时才按顺序延迟返回下一个数字。我做了一些快速研究,发现了一些部分解决方案:使用maximallinearfeedbackshiftregister-如果我理解正确,它只会生成递增序列的数字,并没有涵盖整个范围使用Fisher-Yates或其他集合上的改组算法-鉴于大范围,这将违反内存限制Maintainingaset-likecollectionandkeepgenerating

c# - 在 .NET 中生成所有整数的随机、非重复序列

.NET中有没有办法生成的序列?全部32位整数(Int32)以随机顺序,没有重复,并且以内存高效的方式?内存高效意味着最多只使用几百兆字节的主内存。理想情况下,序列应该类似于IEnumerable,并且仅在请求时才按顺序延迟返回下一个数字。我做了一些快速研究,发现了一些部分解决方案:使用maximallinearfeedbackshiftregister-如果我理解正确,它只会生成递增序列的数字,并没有涵盖整个范围使用Fisher-Yates或其他集合上的改组算法-鉴于大范围,这将违反内存限制Maintainingaset-likecollectionandkeepgenerating

c# - C# 的随机数生成器是如何工作的?

我只是想知道C#中的随机数生成器是如何工作的。我也很好奇如何制作一个程序来生成1-100之间的随机WHOLEINTEGER数字。 最佳答案 您可以使用Random.Next(intmaxValue):Return:A32-bitsignedintegergreaterthanorequaltozero,andlessthanmaxValue;thatis,therangeofreturnvaluesordinarilyincludeszerobutnotmaxValue.However,ifmaxValueequalszero,ma

c# - C# 的随机数生成器是如何工作的?

我只是想知道C#中的随机数生成器是如何工作的。我也很好奇如何制作一个程序来生成1-100之间的随机WHOLEINTEGER数字。 最佳答案 您可以使用Random.Next(intmaxValue):Return:A32-bitsignedintegergreaterthanorequaltozero,andlessthanmaxValue;thatis,therangeofreturnvaluesordinarilyincludeszerobutnotmaxValue.However,ifmaxValueequalszero,ma

c# - .NET 中随机类实现的质量如何?

关于.NETFramework4.6中Random类的实现,我有两个问题(可用代码here):在构造函数末尾将Seed参数设置为1的基本原理是什么?它似乎是从NumericalRecipesinC(第2版)中复制粘贴的,其中它有一定的意义,但它在C#中没有任何内容。NumericalRecipesinC(2ndEd.)一书中直接指出,inextp字段设置为值31因为:Theconstant31isspecial;seeKnuth.但是,在.NET实现中,此字段设置为值21。为什么?除此细节外,其余代码似乎与书中的代码非常相似。 最佳答案

c# - .NET 中随机类实现的质量如何?

关于.NETFramework4.6中Random类的实现,我有两个问题(可用代码here):在构造函数末尾将Seed参数设置为1的基本原理是什么?它似乎是从NumericalRecipesinC(第2版)中复制粘贴的,其中它有一定的意义,但它在C#中没有任何内容。NumericalRecipesinC(2ndEd.)一书中直接指出,inextp字段设置为值31因为:Theconstant31isspecial;seeKnuth.但是,在.NET实现中,此字段设置为值21。为什么?除此细节外,其余代码似乎与书中的代码非常相似。 最佳答案

c# - 为什么相继创建的两个任务会生成相同的随机值?

这个问题在这里已经有了答案:RandomStringGeneratorReturningSameString[duplicate](30个答案)WhydoIkeepgettingtwoofsamerandomvaluesinthiscode?[duplicate](5个答案)关闭8年前。Task.Factory.StartNew(()=>{newClass1();})Task.Factory.StartNew(()=>{newClass2();})在class1和class2的构造函数中我有:vartimeout=newRandom().Next(0,5000);Debug.Print

c# - 为什么相继创建的两个任务会生成相同的随机值?

这个问题在这里已经有了答案:RandomStringGeneratorReturningSameString[duplicate](30个答案)WhydoIkeepgettingtwoofsamerandomvaluesinthiscode?[duplicate](5个答案)关闭8年前。Task.Factory.StartNew(()=>{newClass1();})Task.Factory.StartNew(()=>{newClass2();})在class1和class2的构造函数中我有:vartimeout=newRandom().Next(0,5000);Debug.Print

c# - C# 中 0 - 1000 之间的随机数生成器

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求提供代码的问题必须表现出对所解决问题的最低限度理解。包括尝试过的解决方案、为什么它们不起作用,以及预期结果。另请参阅:StackOverflowquestionchecklist关闭9年前。Improvethisquestion我需要帮助编写一个程序,该程序将生成0到1000之间的100个随机数。输出需要显示在Windows消息框中。我不知道我用什么代码来获取框中的数字并且只有100个随机数。