mcsrandomnumbergenerator.cpp

来自「蒙特卡洛仿真源代码很有参考价值要按照步骤进行操作」· C++ 代码 · 共 60 行

CPP
60
字号
/*  Random Number Generator (appropriate for simulation)    The function generate_random_number is from Appendix A of  "Simulation Using Promodel" by Harrell, Ghosh, and Bowden, 3rd  Edition, McGraw Hill, Boston, year 2000.  The constructor contains  the parameters specified by the book.  *//*    MCS-libre, a library to facilite Monte-Carlo simulation.    Copyright (C) 2002  D. E. Williams    This library is free software; you can redistribute it and/or    modify it under the terms of the GNU Lesser General Public    License as published by the Free Software Foundation; either    version 2.1 of the License, or (at your option) any later version.    This library is distributed in the hope that it will be useful,    but WITHOUT ANY WARRANTY; without even the implied warranty of    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU    Lesser General Public License for more details.    You should have received a copy of the GNU Lesser General Public    License along with this library; if not, write to the Free Software    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA    The full text of the GNU Lesser General Public License is    contained in the files COPYING and LICENSE.    See the 'MCS-libre-HOWTO' in the 'doc' directory for author's    contact information.      Have a nice day!*/#include <cmath>#include "mcsRandomNumberGenerator.h"double randomNumberGenerator::show_maximum(){  // used by stream.h for normalization of random output  // i.e., to create uniform(0,1) distribution  return m;}double randomNumberGenerator::generate_random_number(double zlast) {  return fmod((a * zlast) + c, m);}randomNumberGenerator::randomNumberGenerator(){  m = pow(2,31) - 1;  a = 630360016;  c = 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?