作者wowtiger (小虎)
看板C_and_CPP
标题Re: [问题] 随机乱数rand()的问题
时间Sat May 16 14:27:59 2009
※ 引述《chin2049 (香吉士)》之铭言:
: #include<iostream>
: #include<stdlib.h>
: #include<ctime>
: using namespace std;
: int main(){
: srand( static_cast<unsigned int>(time(NULL))); //随机函式
: int a = 11 + static_cast<int>( 1. * rand() * 10 / (RAND_MAX + 1.));
: cout << a << endl;
: system("pause");
: return 0;
: }
: 请教一下各位大大
: 我想要产生11~20的随机乱数
: 但是为什麽执行结果都相同呢?
: 我是用深度学习C++自学
: 我是照书上打的
: 请问这个改良式的乱数产生方法哪里错了呢?
如果觉得 rand() 不好就自己改良
反正 rand() 内容只是一个 A * B + C 的东西
另外要每次不一样
有几个方法
1.取得时间 (如 GetTime or TickCount)
2.利用 CPU 内部 Counter (如 x86 的 RDTSC)
3.int 无定义 (某些平台无效)
当成 seed 值
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.44.181.148
1F:推 chrisdar:拿到 PID 也是个办法 05/16 16:47
2F:→ jlovet:不觉得PID很好,因为会被观察到 05/16 16:50
3F:→ jlovet:与其自己弄一些奇奇怪怪的方法,我宁愿相信别人写得自动seed 05/16 16:50
4F:推 chrisdar:UUID ? 05/16 17:00
5F:→ jlovet:你的UUID会每天不一样吗XD! 05/16 17:30