C#学习教程:如果数字与前一个匹配,则生成一个随机数分享


如果数字与前一个匹配,则生成一个随机数

我想创建一个随机数字,前面有一个文本,我不希望系统显示两次数字。 所以,这就是我做的方式:

Random _rand = new Random(); private void RandomNumberGenerator() { int random = _rand.Next(10000); string text = "TP0" + random; if (random.Equals(random)) { _rand.Next(); } else { random = _rand.Next(10000); } MessageBox.Show(text); } 

我没有得到任何显示的数字两次(但我不太确定,因为我只是关闭程序,直到它显示数字5次(所有这些都不是相同的数字)。

从上面的代码可以有机会两次显示数字吗?

谢谢。

编辑以摆脱魔法数字并确保理智。

  Random _rand = new Random(); HashSet _taken = new HashSet(); object _syncRoot = new object(); private int RandomNumberGenerator() { lock (_syncRoot) { const int MAX_NUMBER = 10000; if (_taken.Count == MAX_NUMBER) { throw new Exception("All possible numbers are already generated."); } int random = _rand.Next(MAX_NUMBER); while (_taken.Contains(random)) { random = (random + 1) % MAX_NUMBER; } _taken.Add(random); return random; } } 

Soner Gonul是正确的,随机的。我认为,平等(随机)总是如此。 您可以(大致)通过使用另一个int变量来解决它,这将变成生成的最后一个数字, 然后当函数进入它的下一个循环时,它将引用新的随机数变量与存储在第二个变量中的变量相对应,是以前的随机数。 这是一种做法,如果你不明白,我可以尝试在一分钟内更明确一点

上述就是C#学习教程:如果数字与前一个匹配,则生成一个随机数分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—猴子技术宅(www.ssfiction.com)

本文来自网络收集,不代表猴子技术宅立场,如涉及侵权请点击右边联系管理员删除。

如若转载,请注明出处:https://www.ssfiction.com/ckf/1031983.html

发表评论

邮箱地址不会被公开。 必填项已用*标注