我正在尝试实现一个可以生成伪随机序列的类。
构造函数应该具有初始种子,乘数,增量和模数作为参数。一个成员函数应该允许更改种子,一个函数应该生成并返回伪随机序列中的下一个数字。
我的结果是错误的。我做错了什么,应该是正确的实施。
伪随机序列的头文件:
#include<iostream>
using namespace std;
class pRandInt
{
public:
pRandInt();
//Default constructor with parameters
pRandInt(int, int, int, int);
//intial number in pseudorandom sequence
//permits the seed to be changed
void setFirstNum(int);
//generate the next number in the pseudorandom sequence
int getNextNum();
private:
int newSeed;
int newMulti;
int newIncr;
int newMod;
};
伪随机序列的实现文件:
#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;
}
答案 0 :(得分:1)
你的问题在于:
(from trans in DB.transactions
orderby trans.column descending
select trans).Skip(noOfRecords).Take(pageSize);
如果你密切关注这个函数及其调用方式,你会发现这些值都没有改变。如果你想要的话,改变其中一个是习惯的(有些人会说是必要的)看到不同的输出。
我的建议是研究种子: - )
实际上没有为你编写代码(当我试图回答关于SO的明显教育问题时,我倾向于皱眉),那就是我能给予的帮助。但是,它应该更多,而不是你自己解决它。