我不知道为什么我不能在这里得到我的变量的差值,帮助!
int main()
{
srand(time(NULL));
srand48(time(NULL));
Packet* firstPacket = new Packet();
firstPacket->packetSize = randSize();
firstPacket->dest = randDest();
firstPacket->arrivalTime = myExp(lamb);
Host[firstPacket->dest].Frame.push_back(firstPacket); // adding first packet
Host[firstPacket->dest].numOfPack++;
calcFrameSize(Host[firstPacket->dest]);
cout << Host[token].frameTVTime << " " << Host[token].frameSize
<< " " << token << " " << curTime << endl;
}
答案 0 :(得分:5)
您的陈述是:
srand(time(NULL));
srand48(time(NULL));
打电话给你:
inline float time(int size) { return (10.0*(float)size/12500); }
而不是系统时间?
这可以解释为什么你没有得到随机数字。
正如所指出的,time()是该函数的错误名称。
答案 1 :(得分:3)
randSize()和randDest()中有什么?确保这些函数不调用srand()。
答案 2 :(得分:1)
srand(time(0));
或
#include <sys/time.h>
timeval tim;
gettimeofday(&tim, NULL);
srand((unsigned int) tim.tv_usec);
答案 3 :(得分:0)
这就是我对其他功能所拥有的。
inline int randSize() { return (rand()%1518 + 64); }
inline int randDest() { return (rand()%10); }
inline float time(int size) { return (10.0*(float)size/12500); }
这就是我在控制台中所拥有的:
~/152a/2phase$ ./phase2
0 0 1 0.01
0.5752 719 6 0.06
我持续得到这些数字,我认为不应该这样。
感谢。