prandgen.cpp

来自「游戏编程精髓数学部分代码和原程序不错的!不错!」· C++ 代码 · 共 54 行

CPP
54
字号
/* Copyright (C) Guy W. Lecky-Thompson, 2000.  * All rights reserved worldwide. * * This software is provided "as is" without express or implied * warranties. You may freely copy and compile this source into * applications you distribute provided that the copyright text * below is included in the resulting source code, for example: * "Portions Copyright (C) Guy W. Lecky-Thompson, 2000" */// Pseudo-Random Number Generator// (C) 2000 Guy W. Lecky-Thompson#include <stdlib.h>// Standard ANSI C header file #include <limits.h>// Standard ANSI C header for type limits#include "prandgen.h"// The constructor implementationpseudorandom::pseudorandom(){	this->lSeed = 0;}// The destructor implementationpseudorandom::~pseudorandom(){	this->lSeed = 0;}long pseudorandom::Rand(long lMax){  long lNewSeed = this->lSeed;  long lReturn;  lNewSeed = (this->lGen1 * lNewSeed) + this->lGen2;  // Use modulo operator to ensure < ulMax  this->lSeed = lNewSeed;  lReturn = this->lSeed % lMax;  if (lReturn < 1) lReturn = lReturn * -1; // Keep it positive  return lReturn;}void pseudorandom::SRand(long lSeed){	this->lSeed = lSeed;	// Pick two large integers such that	// one is double the other	this->lGen2 = 3719;	this->lGen1 = (lGen2 / 2);}

⌨️ 快捷键说明

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