草庐IT

随机整数

全部标签

c# - 生成随机唯一数字的性能问题

我有一种情况需要创建数以万计的唯一数字。但是这些数字必须是9位数字并且不能包含任何0。我目前的方法是生成9位数字(1-9)并将它们连接在一起,如果该数字不在列表中,则将其添加到其中。例如publicvoidgenerateIdentifiers(intquantity){uniqueIdentifiers=newList(quantity);while(this.uniqueIdentifiers.Count然而,在大约400,000时,这个过程确实变慢了,因为越来越多的生成数字是重复的。我正在寻找一种更有效的方法来执行此过程,我们将不胜感激。编辑:-我正在生成这些-http://ww

c# - 生成一个范围内的 N 个随机且唯一的数字

使用C#在给定范围内生成N个唯一数字的有效方法是什么?例如,生成6个介于1和50之间的唯一数字。一种懒惰的方法是简单地在循环中使用Random.Next()并将该数字存储在数组/列表中,然后重复并检查是否它已经存在或不存在等等。有没有更好的方法来生成一组随机但唯一的数字?为了添加更多上下文,我想使用它们的索引从集合中随机选择N个项目。谢谢 最佳答案 取一个包含50个元素的数组:{1,2,3,....50}使用随机改组数组的任何标准算法对数组进行改组。修改后的数组的前六个元素就是您要查找的内容。

c# - 如何在 C# 中将 Session 变量转换为整数类型

我正在使用C#我正在尝试检查我的登录尝试是否不超过3次,我的意思是满足以下条件:if(((int)Session["LoginAttempt"])!=3){}在登录失败的情况下,我正在做如下增量:Session["LoginAttempt"]=((int)Session["LoginAttempt"])+1;但它给我这个错误:“对象引用未设置到对象的实例。”请多多指教! 最佳答案 抱歉各位,我刚刚更改了整数转换代码((int)Session["LoginAttempt"])到Convert.ToInt32(Session["Logi

要求用户输入超过500的整数。计算出该数字的平方根并将其显示为2个小数位置

IV被要求编写一个程序,要求用户输入超过500的整数。然后,我需要计算出该数字的平方根并将其显示为2个小数点。到目前为止,我已经:importmathmumber=int(input("Pleaseenteranumberover500")ifnumber一切都起作用,但是我在哪里放置印刷品(圆形(数字,2))?编辑:我输入了代码,所以是的,缩进是错误的。看答案您可以做这样的事情:importmathnumber=-1whilenumber基本上,它一直询问用户输入,直到该值大于500。如果您以后要添加检查以不允许输入浮点数,但只有它们输入整数值,您可以通过稍微更改循环来做到这一点:#Same

c# - 使用 LINQ 和 C# 的随机数组

我在MSDN杂志上阅读了一篇关于使用EnumerableclassinLINQ的文章生成一个随机数组。这篇文章使用了VB.NET,我不能立即确定C#中的等价物是什么:DimrndAsNewSystem.Random()Dimnumbers=Enumerable.Range(1,100)._OrderBy(Function()rnd.Next) 最佳答案 DeveloperFusionVB.NettoC#converter表示等效的C#代码是:System.Randomrnd=newSystem.Random();IEnumerabl

c# - 整数与 double 算术性能?

我正在编写一个C#类来使用整数执行2D可分离卷积,以获得比双对应更好的性能。问题是我没有获得真正的性能提升。这是X过滤器代码(它对int和double情况都有效):foreach(pixel){intvalue=0;for(intk=0;k在整数情况下,“value”、“InputImage”和“tempImage”是“int”、“Image”和“Image”类型。在双大小写“value”中,“InputImage”和“tempImage”是“double”、“Image”和“Image”类型。(filterValues在每种情况下都是int[])(图像类是外部dll的一部分。它应该类

c# - DateTime.CompareTo 实际返回什么整数?

一段时间以来,我一直在寻找答案,但实际上我无处可寻。我特别关注thispage.那里说CompareTo方法返回一个整数,指示它是更早、相同还是更晚。我理解它的用法,我知道在早期整数是负数,同样是0等等。但是这个整数是多少?它会以秒、毫秒、刻度为单位返回差异,还是什么都不返回?我希望你能帮我解决这个问题,如果有人能找到另一个有这个问题的帖子,请告诉我。老实说,我很惊讶我无法立即找到关于这个主题的问题...... 最佳答案 文档其实在IComparable接口(interface)页面(即DateTime实现):http://msdn

c# - 使用 C# 的随机数

我想生成一个介于1到500万之间的随机数。这个过程不一定要很快(虽然如果很快的话会很好),但它必须尽可能随机(我知道没有什么是随机的)。我有各种种子数据源。我不确定.NETRandomclass就足够了。这将用于选择中奖彩票。 最佳答案 System.Random类可能已经足够好了:Pseudo-randomnumbersarechosenwithequalprobabilityfromafinitesetofnumbers.Thechosennumbersarenotcompletelyrandombecauseadefinite

c# - 将字符串 [] 转换为整数 []

在c#中将字符串数组["1","2","3"]转换为int数组[1,2,3]的最快方法是什么?谢谢 最佳答案 string[]arr1={"1","2","3"};int[]arr2=Array.ConvertAll(arr1,s=>int.Parse(s));Array.ConvertAll的使用确保(与LINQSelect/ToArray不同)数组以正确的大小初始化。您可以通过展开来更快地获得阴影,但不会太多:int[]arr2=newint[arr1.Length];for(inti=0;i如果您需要更快的东西(可能是批量文件

c# - 给定数字之间的随机加倍

我正在寻找一些简洁的现代C#代码来生成1.41421和3.14159之间的随机double。其中数字应为[0-9]{1}.[0-9]{5}格式。我在想一些利用Enumerable.Range的解决方案可能会使这个更简洁。 最佳答案 您可以轻松定义一个返回两个值之间的随机数的方法:privatestaticreadonlyRandomrandom=newRandom();privatestaticdoubleRandomNumberBetween(doubleminValue,doublemaxValue){varnext=rando