xufeizty

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

   ASP.NET中伪随机数生成机制

  计算机不可能产生完全随机的数字。所谓的随机数发生器都是通过一定的算法对事先选定的随机种子做复杂的运算,用产生的结果来近似的模拟完全随机数,这种随机数被称作伪随机数。伪随机数是以相同的概率从一组有限的数字中选取的。所选数字并不具有完全的随机性,但是从实用的角度而言,其随机程度已足够了。

  1、VB.NET内建函数KVM KVM切换器

       ASP.NET程序可以采用多种编程语言,其默认的程序语言是VB.NET,虽然VB.NET和VB有些相似,但它们的应用环境不一样,编写代码的方法也有所不同。在VB.NET中,如果要使用数学函数,必须通过.NET Framework提供的Math类,它位于System命名空间下,用户可以在代码顶部添加Imports System. Math以便使用这些数学函数。

  其中用于产生随机数的函数原型为:Rnd(x),该函数用以产生一个介于0~1之间的单精度随机数。x是产生随机数的种子。如果要从(min, max)这个范围内随机抽取一个数,此时需要用到公式:随机数 = (max - min) * Rnd(x) + min。

  伪随机数的选择是从随机种子开始的,为了保证每次得到的伪随机数都足够地“随机”,随机种子的选择就显得非常重要。如果选择的随机种子一样则生成的随机序列也相同。一般地,使用同系统时间有关的参数作为随机种子,这也是.net Framework中的随机数发生器默认采用的方法。

  2、随机数类System.Random

  随机数类System.Random类提供以下方法用于产生各种满足不同要求的随机数,如表1所示:

  表1    System.Random类提供的各种方法
编号
 方法名称
 功能描述
 
1
 Next()
 返回一个0~2147483647之间的整数
 
2
 Next(i)
 返回一个0~i之间的整数
 
3
 Next(i,j)
 返回一个i~j之间的整数
 
4KVM KVM切换器
   Nextdouble()
 返回一个0~1之间的随机小数
 
5
  Nextdouble(  byte())
 用0~255之间的随机整数作为字节数组各元素的值。


  使用随机数类System.Random必须先声明。如果要使用Nextbytes(byte())方法,在使用前也必须声明字节数组。

  3、测试程序编写

  在运行ASP.NET程序前必须建立其开发运行环境,包括配置Microsoft IIS和安装.NET Framework SDK以及机MSE编辑器。MSE编辑器是Microsoft Office的一个附加软件,作为ASP.NET的编辑工具非常方便。测试程序代码如下:

<script language="vb" runat="server">

sub page_load(send as object,e as eventargs)
 dim r1 as random =new random()
 response.write("The result of r1.next()is:"+r1.next().tostring())
 response.write("Theresultofr1.next(100)is:" +r1.next(100).tostring())
 response.write("The result of r1.next(100,150) is:"+r1.next(100,150).tostring())
 response.write("The result of r1.nextdouble() is:"+r1.nextdouble().tostring())
 r1.nextbytes(r)  // dim r(300) as byte
 response.write("the r(100) is:")
 response.write(r(199))
 end sub </script>

 

  实例开发 KVM KVM切换器

  应用程序需求分析:创建一个用于模拟掷骰子游戏的应用程序。此游戏中,游戏者将随机滚动一个骰子。每一个骰子有六个面,分别代表1,2,3,4,5,6这六个点。当骰子停下以后,观察骰子上表面的点数。如果掷得的点数为6,则提示赢的信息,否则将继续投掷。

posted on 2010-05-17 09:43  xufeizty  阅读(848)  评论(0编辑  收藏  举报