Tag: int

制作一组随机的int

我试图做的是生成随机int值的数组,其中随机值在min和max之间取得。 到目前为止,我提出了这个代码: int Min = 0; int Max = 20; int[] test2 = new int[5]; Random randNum = new Random(); foreach (int value in test2) { randNum.Next(Min, Max); } 但它还没有完全发挥作用。 我想我可能只缺一行或其他东西。 任何人都可以帮助我推动我朝着正确的方向前进吗?

C#int字节转换

为什么是 byte someVar; someVar -= 3; 有效但是 byte someVar; someVar = someVar – 3; 心不是?

在.NET中生成所有整数的随机,非重复序列

在.NET中是否有一种方法可以以随机顺序生成所有 32位整数( Int32 )的序列,而不会重复,并且以内存效率的方式生成? 内存效率意味着最多只能使用几百兆字节的主内存。 理想情况下,序列应该类似于IEnumerable ,并且只有在请求时才会延迟返回序列中的下一个数字。 我做了一些快速的研究,我找到了一些部分解决方案: 使用最大线性反馈移位寄存器 – 如果我理解正确的话,它只会按递增顺序生成数字并且不会覆盖整个范围 在集合上使用Fisher-Yates或其他混洗算法 – 这会在大范围内违反内存限制 保持一个类似集合的集合并继续生成一个随机整数 (可能使用Random ),直到它不重复,即它不在集合中 – 除了可能无法满足内存需求之外,生成最后一个时它会变得非常慢序列中的数字。 超过32位的随机排列,但我想不出一种确保不可重复性的方法。 还有另一种方法来看待这个问题 – 也许利用固定的价值范围 – 这将提供满足内存要求的解决方案吗? 也许.NET类库带有一些有用的东西? 更新1 感谢大家对解决方案的见解和创意建议。 我将尝试尽快实施和测试(正确性和内存效率)这里提出的2或3个最有希望的解决方案,发布结果然后选择“赢家”。 更新2 我试着在下面的评论中实现hvd的建议。 我尝试使用.NET中的BitArray和我的自定义实现,因为.NET只限于int.MaxValue条目,因此不足以覆盖整个整数范围。 我喜欢这个想法的简单性,如果它工作正常,我愿意“牺牲”那512 MB的内存。 不幸的是,运行时间非常慢,花费数十秒来生成我的机器上的下一个随机数,该机器具有3.5 GHz Core i7 CPU。 所以不幸的是,如果要求生成许多随机数,这是不可接受的。 我猜它是可以预测的,如果我没有弄错的话,它是一个O(M x N)算法,其中N是2 ^ 32而M是请求的整数的数量,因此所有这些迭代都需要付出代价。 理想情况下,我想在O(1)时间内生成下一个随机数,同时仍满足内存要求,这里建议的下一个算法可能适用于此。 我会尽快给他们试一试。 更新3 我刚刚测试了线性同余发生器 ,我可以说我对结果非常满意。 对于这个post中的赢家位置来说,它看起来像是一个强有力的竞争者。 正确性 :所有整数只生成一次(我使用了一个位向量来检查)。 随机性 :相当不错。 […]

你如何创建一个随机的64位数字?

我有一个规范的一部分,要求我创建一个随机的64位数字,并将以下转换为字符串:(0到2 ^ 63 – 1) 我不知道这在括号中是什么意思,任何人都可以帮忙吗?

将Array转换为主要方法以表示相同的结果,不使用仅LINQ int。

我的程序记录了四个房间在瓶子里收集的瓶子数量。 当用户输入退出时,显示每个房间收集的瓶子数量,并打印出具有最多瓶子的房间。 我用一个数组来跟踪房间号码。 如何更改方法而不是使用数组,我想启动room1,room2,room3,room4。 如果我不使用数组,我是否可以使用我的循环数组调用来写行? 我的意思是。 int room = int.Parse(quit); Console.Write(“Bottles collected in room {0}: “, room); // This line adds the count of bottles and records it so you can continuously count the bottles collected. rooms[room – 1] += int.Parse(Console.ReadLine()); 而这一行: }//Writes the bottles collected by the different rooms Console.WriteLine(“Bottles collected in room {0} […]

如何将int数组转换为int?

我想学习的方法是将一个int数组转换为C#中的int。 但是我想用数组中的值附加int。 例: int[] array = {5, 6, 2, 4}; 将被转换为等于5624的int。 在此先感谢您的帮助。

为什么两个整数之间的除法结果被截断?

C#中所有有经验的程序员(我认为这来自C)用于对分区中的整数进行强制转换,以获得decimal / double / float结果而不是int(实际结果被截断)。 我想知道为什么这样实现? 如果两个数字都是整数,是否有任何理由截断结果?

字符串和整数,隐式和显式

有一个同事问我这个问题,在我脑子里迷茫的状态我没有答案: 你为什么这样做: string ham = “ham ” + 4; 但不是: string ham = 4; 如果在连接时存在字符串转换的隐式转换/操作,为什么在将其指定为字符串时不一样? (当然没有做一些运算符重载)

运算符’==’不能应用于’int’和’string类型的操作数

我正在写一个程序,我想到一个数字,计算机猜测它。 我正在尝试测试它,但我一直都会遇到错误。 错误是主题标题。 我使用Int.Parse转换我的字符串,但我不知道为什么我收到错误。 我知道它说’==’不能和整数一起使用,但是我在网上看到的所有内容以及我class上的幻灯片都使用它,所以我被卡住了。 代码是不完整的,我不想让它运行,我只是想解决问题。 非常感谢任何帮助,谢谢:D class Program { static void Main(string[] args) { Console.Write(“Enter any number after 5 to start: “); int answer = int.Parse(Console.ReadLine()); { Console.WriteLine(“is it 3?”); if (answer == “higher”)

将double翻转为int

我有一个来自int / int的数字(“double”)(例如10/3)。 什么是Excess逼近的最佳方法,并在C#上将其转换为int?