zoukankan      html  css  js  c++  java
  • (转)随机数生成工具

    这篇是师兄的一篇杰作,特意转过来,因为以后也要用到,到时候就没必要自己去写了。实为偷懒,但也是为了能够更快的解决问题。原文:     http://hi.baidu.com/davy_hwang/item/6c14bfd0a736823149e1dd57   

     1 #pragma once
     2 #include <ctime>
     3 const unsigned long maxshort = 65535L;
     4 const unsigned long multiplier = 1194211693L;
     5 const unsigned long adder = 12345L;
     6 class RandomNumber{
     7 private:
     8  // 当前种子
     9  unsigned long randSeed;
    10 public:
    11  // 构造函数,默认值0表示由系统自动产生种子
    12  RandomNumber(unsigned long s = 0);
    13  // 产生0 ~ n-1之间的随机整数
    14  unsigned int Random(unsigned long n);
    15  // 产生[0, 1) 之间的随机实数
    16  double fRandom();
    17 };
    18 // 产生种子
    19 RandomNumber::RandomNumber(unsigned long s)
    20 {
    21  if(s == 0)
    22   randSeed = (unsigned long)time(0);    //用系统时间产生种子
    23  else
    24   randSeed = s;
    25 }
    26 // 产生0 ~ n-1 之间的随机整数
    27 unsigned int RandomNumber::Random(unsigned long n)
    28 {
    29  randSeed = multiplier * randSeed + adder;
    30  return (unsigned int)((randSeed) % n);
    31 }
    32 // 产生[0, 1)之间的随机实数
    33 double RandomNumber::fRandom()
    34 {
    35  return Random(maxshort) / double(maxshort);
    36 }
    37  
    38 //  --------------------------------------- test:
    39 #include <iostream>
    40 #include "Rdm.h"
    41 #include <fstream>
    42 using namespace std;
    43 int main()
    44 {
    45  ofstream ofRet("Nodes.tr");
    46  RandomNumber obj;
    47  int Loc_x = 0;
    48  int Loc_y = 0;
    49  for ( int i = 0; i < 100; i++ )
    50  {
    51   Loc_x = obj.Random(600);
    52   Loc_y = obj.Random(600);
    53   ofRet << "-MN	" << i << "	-X	" << Loc_x << "	-Y	" << Loc_y << endl;
    54  }
    55  return 0;
    56 }

    将结果输入到matlAB可以得到如下的随机分布图,是不是很nice。nice归nice,过程还要自己去走一遍。

  • 相关阅读:
    三种钱是花的越多,赚的越多
    程序员除去繁华,你的匠心何在?
    科目三考试
    药房托管
    文章标题
    【cocos2d-x 3.7 飞机大战】 决战南海I (八) 背景移动
    Android开发时经经常使用的LogUtil
    仿支付宝/微信的password输入框效果GridPasswordView解析
    hdoj 1518 Square 【dfs】
    mysql配置文件夹错误:在安装mysql 5.6.19 时运行cmake命令是出现CMake Error: The source directory does not appear to contai
  • 原文地址:https://www.cnblogs.com/bakari/p/3578820.html
Copyright © 2011-2022 走看看