C_and_CPP 板


LINE

#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++自學 我是照書上打的 請問這個改良式的亂數產生方法哪裡錯了呢? --



※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.118.232.173
1F:→ MOONRAKER:為啥不用 % ?這方法好迂迴喔 05/16 00:36
2F:→ sosokill:a%10+11這樣不是很簡單= =? 05/16 01:06
3F:→ HeyScng:time函數回從午夜00:00:00起所經過秒數 05/16 01:48
4F:→ HeyScng:因此若要有0.5的變化需耗時 0.5 x ( RAND_MAX+1 )/10秒 05/16 01:49
5F:→ HeyScng:你現在如果再跑一次 應該有變一點點吧XD 05/16 01:50
6F:→ HeyScng:不知道我有沒有說錯? 05/16 01:53
7F:→ ykjiang:sosokill 的寫法,產生的亂數很容易就不平均 05/16 01:56
8F:→ ykjiang:理由有二,讓其他人補充吧,要睡了... 05/16 01:56
9F:推 jlovet:time不是從1970開始的秒數嗎? 又,秒數跟RAND_MAX的關係? 05/16 02:48
10F:→ jlovet:只有 %10 而已應該不會太不平均... 05/16 02:55
11F:推 Fenikso:這code跑起來一點問題都沒有啊 05/16 06:43
12F:→ chin2049:樓上大大 為什麼我用Dev-c++跑 每次結果都一樣  05/16 06:47
13F:→ MOONRAKER:%10+11是會怎樣不平均我倒想知道,yk先生的虛擬亂數值域 05/16 11:22
14F:→ MOONRAKER:是只有0..15嗎? 05/16 11:22
15F:→ ykjiang:學生交交作業沒差,最好不要用於嚴謹的場合 05/16 12:27
16F:推 VictorTom:小弟資質駑鈍, 看不出這樣的寫法和%10+11有什麼差別. 05/16 12:33
17F:→ VictorTom:把rand()的值域展開來看套下去原po式子算感覺是一樣的. 05/16 12:34
18F:→ ykjiang:最主要原因,請參考 http://tinyurl.com/px9ep7 05/16 12:34
19F:→ ykjiang:另一個原因,jlovet 應該知道 :) 05/16 12:35
20F:推 VictorTom:亂數範圍是2, 4, 8, 16, 32這種用low-bits好像還OK.... 05/16 12:37
21F:→ VictorTom:話說新的這個方法前N-1個分布是比較平均, 但最後一個落 05/16 12:38
22F:→ VictorTom:點的機率會比前面N-1個都小一點囉?? 05/16 12:39
23F:→ ykjiang:pseudo random number 很少有每個 bit 都一樣亂的 05/16 12:40
24F:→ ykjiang:這是很現實問題 05/16 12:41
25F:推 VictorTom:以前想過, 如果數學上某一小部份的數比另一大部份的數基 05/16 12:44
26F:→ VictorTom:率不相同, 那取到這小部份的數就捨棄掉重取, 不知可不可 05/16 12:44
27F:→ VictorTom:行....XD 05/16 12:45
28F:→ ykjiang:這樣有作弊的嫌疑,很難弄得好 05/16 12:49
29F:推 VictorTom:這倒是, 我要算0~N的亂數, 還得先找個>N的M, 確定M裡至 05/16 12:54
30F:→ VictorTom:少有N個數的rand()機率相等, 然後去求; 想到就累了Orz 05/16 12:55
31F:→ jlovet:我只知道,現在libc的rand是跟random一樣 05/16 13:30
32F:→ jlovet:period很大,所以lower bit跟higher bit幾乎一樣亂... 05/16 13:30
33F:推 ykjiang:那麼有信心,哪個版本的 libc? 用哪種演算法? 05/16 15:27
34F:→ ykjiang:如果你測試過,覺得夠亂那就好,但並非每種場合都適用 05/16 15:28
35F:→ ykjiang:夠亂不只是夠平均就好喔,要沒明顯的模式或相依性 05/16 15:29
36F:→ ykjiang:這在統計上,有明確的定義... 05/16 15:30
37F:→ ykjiang:一個嚴謹的要求是要任意長度的隨機序列出現的頻率都要一致 05/16 15:34
38F:→ ykjiang:任何嚴謹隨機數應用,最好都測試過,看是否達到需求 05/16 15:37
39F:→ ykjiang:我知道的,很少有演算法產生的隨機數能通過全部檢定的 05/16 15:38
40F:→ ykjiang:通過全部檢定的演算法通常不實用,因為太耗運算了 05/16 15:41







like.gif 您可能會有興趣的文章
icon.png[問題/行為] 貓晚上進房間會不會有憋尿問題
icon.pngRe: [閒聊] 選了錯誤的女孩成為魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一張
icon.png[心得] EMS高領長版毛衣.墨小樓MC1002
icon.png[分享] 丹龍隔熱紙GE55+33+22
icon.png[問題] 清洗洗衣機
icon.png[尋物] 窗台下的空間
icon.png[閒聊] 双極の女神1 木魔爵
icon.png[售車] 新竹 1997 march 1297cc 白色 四門
icon.png[討論] 能從照片感受到攝影者心情嗎
icon.png[狂賀] 賀賀賀賀 賀!島村卯月!總選舉NO.1
icon.png[難過] 羨慕白皮膚的女生
icon.png閱讀文章
icon.png[黑特]
icon.png[問題] SBK S1安裝於安全帽位置
icon.png[分享] 舊woo100絕版開箱!!
icon.pngRe: [無言] 關於小包衛生紙
icon.png[開箱] E5-2683V3 RX480Strix 快睿C1 簡單測試
icon.png[心得] 蒼の海賊龍 地獄 執行者16PT
icon.png[售車] 1999年Virage iO 1.8EXi
icon.png[心得] 挑戰33 LV10 獅子座pt solo
icon.png[閒聊] 手把手教你不被桶之新手主購教學
icon.png[分享] Civic Type R 量產版官方照無預警流出
icon.png[售車] Golf 4 2.0 銀色 自排
icon.png[出售] Graco提籃汽座(有底座)2000元誠可議
icon.png[問題] 請問補牙材質掉了還能再補嗎?(台中半年內
icon.png[問題] 44th 單曲 生寫竟然都給重複的啊啊!
icon.png[心得] 華南紅卡/icash 核卡
icon.png[問題] 拔牙矯正這樣正常嗎
icon.png[贈送] 老莫高業 初業 102年版
icon.png[情報] 三大行動支付 本季掀戰火
icon.png[寶寶] 博客來Amos水蠟筆5/1特價五折
icon.pngRe: [心得] 新鮮人一些面試分享
icon.png[心得] 蒼の海賊龍 地獄 麒麟25PT
icon.pngRe: [閒聊] (君の名は。雷慎入) 君名二創漫畫翻譯
icon.pngRe: [閒聊] OGN中場影片:失蹤人口局 (英文字幕)
icon.png[問題] 台灣大哥大4G訊號差
icon.png[出售] [全國]全新千尋侘草LED燈, 水草

請輸入看板名稱,例如:Tech_Job站內搜尋

TOP