大白鲨博客

欢迎讨论.Net技术、delphi技术、C++等技术(我的QQ号:353079102)

导航

公告

统计

随机数不随机怎么办?

                                                                      随机数不随机怎么办?


       你用过.net的System.Random类吗?.用过的人会发现随机数生成器类不能很好的产生随机数,而且性能不太好。用随机数生成器类的用途很多,但由于System.Random不太好的表现给我们造成了很大的不便。为了解决这个问题我们可以重新写一个产生随机数类来弥补System.Random的不足之处。
      首先我们现在重写一个System.Random的基类RdomBase,它将实现System.Random中所实现的所有方法,但我们将保留Next()方法作为抽象方法,以便继承类根据不同的运算规则来实现它。在随机数生成器类中编写了几个有用的类型转换方法以备读者需要时使用。基类RdomBase的代码如下:

public abstract class RdomBase: Random
{
    
构造函数

 

    
方法

    
重写 

    
Utility Methods

}


      我们再做一个NewRandom类,它从上边的类继承而来,在这个类里我们实现Next()的抽象方法。代码如下:

public class NewRandom : RdomBase
{

    
构造函数

 

    
私有成员

 

    
方法
}

       现在所有代码都介绍完了,读者可以把代码嵌入到自己的程序里试验一下这个随机数生成器类,比如在程序里写段如下代码:

private NewRandom m_NewRandom;
m_NewRandom 
= new RandomNumberGeneration.NewRandom();
m_NewRandom.NextDouble();

        试验后你是否感觉到用起来比System.Random爽快、好用?当然这只是一种思路,读者可以根据自己的情况调整以上代码来达到更适合自己程序的随机数生成器。



posted on 2006-07-24 11:21 大白鲨 阅读(...) 评论(...)  编辑 收藏