伪随机整数

时间:2017-01-23 06:35:29

标签: c++

我正在尝试实现一个可以生成伪随机序列的类。

构造函数应该具有初始种子,乘数,增量和模数作为参数。一个成员函数应该允许更改种子,一个函数应该生成并返回伪随机序列中的下一个数字。

我的结果是错误的。我做错了什么,应该是正确的实施。

伪随机序列的头文件:

#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;
}

1 个答案:

答案 0 :(得分:1)

你的问题在于:

(from trans in DB.transactions 
orderby trans.column descending 
select trans).Skip(noOfRecords).Take(pageSize);

如果你密切关注这个函数及其调用方式,你会发现这些值都没有改变。如果你想要的话,改变其中一个是习惯的(有些人会说是必要的)看到不同的输出。

我的建议是研究种子: - )

实际上没有为你编写代码(当我试图回答关于SO的明显教育问题时,我倾向于皱眉),那就是我能给予的帮助。但是,它应该更多,而不是你自己解决它。