0
我想实现一个可以生成伪随机序列的类。伪随机整数
构造函数应该有初始种子,乘数,增量和模数作为参数。一个成员函数应该允许改变种子,一个函数应该生成并返回伪随机序列中的下一个数字。
我的结果是错误的。我做错了什么,以及什么应该是正确的实施。对于伪随机序列
头文件
#include "pRandInt.h"
pRandInt::pRandInt()
{
int newSeed = 0;
const int newMulti = 40;
const int newIncr = 725;
const int newMod = 729;
}
pRandInt::pRandInt(int seed, int multi, int incr, int mod)
{
newSeed = seed;
newMulti = multi;
newIncr = incr;
newMod = mod;
}
void pRandInt::setFirstNum(int seed)
{
newSeed = seed;
}
int pRandInt::getNextNum()
{
return (newMulti * newSeed + newIncr) % newMod;
}
主要测试文件的伪随机序列:
#include <iostream>
#include "pRandInt.h"
using namespace std;
int main()
{
int seed = 0;
pRandInt num;
num.setFirstNum(seed);
cout << "The first number in your sequence is: ";
cin >> seed;
cout << "The other numbers in your sequence are: ";
cout << num.getNextNum() << endl;
system("pause");
return 0;
}
对于某些特定的输入,你期望得到什么结果,以及你实际得到了什么结果?你是否尝试过在调试器中的代码?至于“正确的实现”,那就是使用[标准的C++ PRNG功能](http://en.cppreference.com/w/cpp/numeric/random),而不是试图实现你自己的。 –