随机数生成类C++源码

原创 2004年10月14日 10:33:00

#include <iostream>
#include <time.h>

using namespace std;

class randomNumber
{
 public:
  randomNumber(long s = 0);
  long random();
  long random(long n);
  double frandom();

 private:
  static const long A;
        static const long M;
        static const long Q;
        static const long R;

        long seed;
};

const long randomNumber::A = 48271;
const long randomNumber::M = 2147483647;
const long randomNumber::Q = M / A;
const long randomNumber::R = M % A;

randomNumber::randomNumber(long s)
{
 if (s < 0)
        s = 0;
 
 if (s == 0)
 {
  long t_time = time(NULL);
        t_time *= t_time;
        if (t_time > 0)
            s = t_time ^ 0x5EECE66DL;
        else if (t_time < 0)
            s = (t_time & 0x7fffffff) ^ 0x5EECE66DL;
        else
            s = 0x5EECE66DL;
 }
   
 seed = s;
}

long randomNumber::random()
{
    long tmpSeed = A * ( seed % Q ) - R * ( seed / Q );

    if( tmpSeed >= 0 )
        seed = tmpSeed;
    else
        seed = tmpSeed + M;

    return seed;
}

long randomNumber::random(long n)
{
    double fraction = double(random())/double(M);

    return int(fraction * n);
}

double randomNumber::frandom()
{
    return double(random())/double(M);
}

c++ string类的完整实现!!!

c++ string类的完整实现,标注库有的功能这里基本都有,在此基础上可以进行良好的扩充!!!...
  • focusing_on_cpp
  • focusing_on_cpp
  • 2015年06月29日 07:58
  • 5618

c++中string类的源代码

一:回顾 (1)c++中的string类是在面试中和笔试中经常考的题目; (2)c++中的string类和fstream类合起来是处理外部数据的利器; (3)string类经常用到find find_...
  • u010700335
  • u010700335
  • 2014年11月10日 12:20
  • 7103

随机数生成类

using System; using System.Security.Cryptography; namespace WpfApp { class RandomX { ...
  • danding_ge
  • danding_ge
  • 2014年01月06日 14:09
  • 967

高质量的c++随机数生成方法

随机数用的场合非常多,比如卷积神经网络算法中,初始的卷积核权值就是随机数;图像处理上的柏林噪声,要用到随机数;微信抢红包嘛,谁抢的多、谁抢的少,拼人品、拼手气,其实拼的是程序背后的随机数。...
  • u013085897
  • u013085897
  • 2017年01月15日 15:37
  • 1338

.NET源码中的随机数生成类

Random类,微软对其的描述如下: Represents a pseudo-random number generator, a device that produces a sequence o...
  • cuit
  • cuit
  • 2014年06月30日 23:45
  • 650

c++随机数生成

转▼   c++随机数生成函数rand(),实质生成伪随机数列。 为生成更加随机的数列,需要srand(unsigned num)来播种。 常用方式srand((unsigned)time(N...
  • u013545389
  • u013545389
  • 2014年05月08日 18:51
  • 406

C++随机数生成

在学习排序算法时经常需要用到随机数文件对算法进行测试。//用于生成随机数文件 //程序运行开始时输入 随机数保存的文件名、随机数个数、随机数允许的最大值 #include #include #i...
  • pzy_GH
  • pzy_GH
  • 2014年01月28日 21:28
  • 252

C++ 随机数生成

void srand(unsigned seed);int rand(void);
  • typecool
  • typecool
  • 2010年08月16日 06:50
  • 241

C++ 随机数生成

标准库(被包含于中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void); 从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7ff...
  • e_wsq
  • e_wsq
  • 2013年11月03日 16:38
  • 441

c++ 随机数生成

一、标准库(被包含于中)提供两个帮助生成伪随机数的函数: 函数一:int rand(void); 从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0...
  • xuxiatian
  • xuxiatian
  • 2016年06月21日 15:54
  • 107
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:随机数生成类C++源码
举报原因:
原因补充:

(最多只允许输入30个字)