作者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
推 chrisdar:拿到 PID 也是個辦法 05/16 16:47
→ jlovet:不覺得PID很好,因為會被觀察到 05/16 16:50
→ jlovet:與其自己弄一些奇奇怪怪的方法,我寧願相信別人寫得自動seed 05/16 16:50
推 chrisdar:UUID ? 05/16 17:00
→ jlovet:你的UUID會每天不一樣嗎XD! 05/16 17:30