【发布时间】:2020-11-28 22:18:31
【问题描述】:
#include <iostream>
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
using namespace std;
class mRND
{
public:
void seed()
{
srand(time(0));
_seed = rand();
}
protected:
mRND() : _seed(), _a(), _c(), _m(2147483648)
{
}
int rnd()
{
return (_seed = (_a * _seed + _c) % _m);
}
int _a, _c;
unsigned int _m, _seed;
};
int main() {
mRND r;
for(int i=0;i<100;i++)
cout<< r.rnd()<<endl;
return 0;
}
【问题讨论】:
-
你从不给 _seed、_a 或 _c 任何值,所以它一直使用 0 和 0*0+0 = 0。
标签: c++ class random-seed seed srand