c#中的随机数

来源:互联网 发布:淘宝网单管巴乌价格 编辑:程序博客网 时间:2024/05/21 19:38

今天做了一个小游戏,相信大家在聚会饭后都玩过一个游戏吧,一个人在手机上输入一个1-100的数然后,然后由其他人说从1-100之间的数,如果比所选数大,或者比所选数小,则输入数的人则告诉大家新的范围如:1-50;之后大家轮流在缩小范围内报数猜测。如果不幸猜中了就得表演节目。

  我在vs上用c#的windows窗体程序写了这个小游戏其中就用到了随机数。在游戏开始的时候需要系统随机选择一个数。

首先需要初始化一个随机数发生器。

方法1:(选取系统时间作随机种子)

Random rm = new Random();

方法2:(指定一个整形参数作为种子)

int a=10;Random rm = new Random(a);

之后就可以用随机数发生器rm来产生随机数了。

rm.Next(10);//产生一个小于10的随机数

rm.Next(1,10);//产生一个从1到10之间的随机数 

注意随机数为返回值

直接用

rm.Next();

可以产生范围为大于或者等于零而小于2147483647的数。

在这里提出一点建议:

用系统时间做种子并不保险,如果应用程序在一个较快的计算机上运行,则该计算机的系统时钟可能没有时间在此工造函数的调用之间进行更改,Random的不同实例的种子值可能相同。这种情况下,我们就需要另外的算法来保证禅山数字的随机性。所以为了保证产生的随机数足够“随机”,我们应该使用复杂一点的方法来获得种子。


这就是我在学习随机数时候的一点小小心得,希望大家多多指教。