C#Random随机值重复的解决方法
程序员文章站
2022-04-17 21:07:42
使用如上图所示的代码,将会出现如下情况,明明是随机,可值都是同样的,这样的随机几率也太小了,所以估计是代码有问题。 于是搜索了下,发现引起这个问题的原因是C#中的Random是根据时间来产生随机数,而且生成太快。将Random转到定义后就可以发现他的注释就是使用时间的种子值,如下图所示: 网上也有很 ......
使用如上图所示的代码,将会出现如下情况,明明是随机,可值都是同样的,这样的随机几率也太小了,所以估计是代码有问题。
于是搜索了下,发现引起这个问题的原因是c#中的random是根据时间来产生随机数,而且生成太快。将random转到定义后就可以发现他的注释就是使用时间的种子值,如下图所示:
网上也有很多方法来解决,主要是两种:一是使用thread.sleep()给定需要的时间值,二是想办法使new random(int seed)中的参数随机化,参考。
不过突然灵光一闪,有了新的发现:那就是将var random = new random();这句代码移出循环即可解决,如下图所示:
我们再来看下结果:
完美
上一篇: 555,糗到了倒霉的程度!
下一篇: 老公逗老婆,笑点特别多