Re: [問題] 關於在陣列中快速產生亂數的方法

看板C_and_CPP (C/C++)作者 (卡卡獸)時間12年前 (2013/10/03 22:00), 編輯推噓1(108)
留言9則, 4人參與, 最新討論串2/2 (看更多)
之前用 web 版看這篇就很想回,不過環境擋 telnet , 所以有點晚回覆.. 言歸正傳。 ※ 引述《abab7974 (幻滅)》之銘言: : 開發平台(Platform): (Ex: VC++, GCC, Linux, ...) : VC++2012 : 問題(Question): : 如何在陣列中快速產生亂數 恕刪... : 我的老師希望的是 : loop1 : [1][2][3][4][5][6] : [ ][ ][ ][ ][ ][ ] : loop2 : [1][2][3][4][5][6] : [4][7][8][0][5][6] 恕刪... : 我有看到書上似乎可以用vector一次產生一整列的值,不過似乎只能固定值 : 因為當我使用亂數產生時,應該是同時產生的關係導致時間一樣所以所有亂數產生的值 : 都是一樣的。 : 這是我測試的程式碼 : http://codepad.org/wNBx69lD : 我GOOGLE了很多資料,還是找不太到我可以改的方法,所以想來這請教一下。 該是偷打廣告 - C++11 的時候了。 http://en.cppreference.com/w/cpp/numeric/random/seed_seq #include <random> #include <cstdint> #include <iostream> int main() { std::seed_seq seq{1,2,3,4,5}; std::vector<std::uint32_t> seeds(10); seq.generate(seeds.begin(), seeds.end()); for (std::uint32_t n : seeds) { std::cout << n << '\n'; } } --------------------------- 可愛分隔線 -------------------------- 其實你們老師要的東西,在 C++ 11 大多都 support 了, 然後有種 array 是設計給數值分析用的 : valarray (不到 C++11 就有了) http://www.cplusplus.com/reference/valarray/ 正常而言使用它操作 NR 的東西速度應該要 "飛快" , 不過目前這東西實測結果...嗯,各家 compiler 其實效果不一, 目前就我所知,在 VC 系列下效果很糟, ( 我把實測數據拿掉了,之前測過 VS / g++ CArray , vector , valarry , 結果 VS valarry 效果真的很糟 ,有興趣可自己玩玩 ) 至於有沒有調用 SSE2 、做優化的 valarry ... 嗯,我沒再深入找了。 再來是 C++ 11 其實多了一堆和 NR 有關的 function / class , 只是要到可讓業界拿去用的話,可能還有段路要走就是了,其他的有興趣自己查。 http://en.cppreference.com/w/cpp/numeric --------------------------- 可愛分隔線 -------------------------- 提外話,上一篇有提到這本書 數值分析 使用C語言 程曉旭 耿魯靜 張海 王勇 其實這本書寫得算不錯,只是後面的章節說明草率就是了。 然後,NR 的書籍不要太要求, Code 撰寫一定符合 C99 還是什麼標準、 什麼技巧一定要用、記憶體防呆一定要夠漂亮...等, NR 的書只是用 Code 表達它的算法,細節從來沒太 care 過, 其他的...嗯,就看個人造化了。 -- 就算把新鮮的肝拿回去,還是一樣寫碼到禿頭,加班到天亮, 永遠當老闆的傀儡 你是不是想這麼做? 是的話你就拿回去~ 拿啊!! 九世宅男 : 下輩子不要再讓我幹工程師了 ~ < Kuso 星爺語錄 > -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 101.8.216.167

10/03 22:11, , 1F
compile不過讓人覺得很沒誠意啊,至少code要寫到可以跑吧?
10/03 22:11, 1F

10/03 22:12, , 2F
不然直接寫pseudo code也可以,還在書名烙什麼C語言...
10/03 22:12, 2F

10/03 23:06, , 3F
compile 不過是有點扯...第一版沒這問題說
10/03 23:06, 3F

10/03 23:12, , 4F
那個用K&R時代的compiler說不定能跑XD
10/03 23:12, 4F

10/03 23:12, , 5F
雖然看起來有人連「"」都翻譯了
10/03 23:12, 5F

10/03 23:23, , 6F
不行, 我試過了... XD
10/03 23:23, 6F

10/03 23:24, , 7F
那不是K&R的問題,而是根本就胡亂include沒有好好宣告
10/03 23:24, 7F

10/03 23:26, , 8F
不過既然第一版沒這問題,可見至少有一個版本是正確的...
10/03 23:26, 8F

10/04 11:27, , 9F
感謝E大的資訊,我之後會來研究看看的,謝謝
10/04 11:27, 9F
文章代碼(AID): #1IJNXdWH (C_and_CPP)
文章代碼(AID): #1IJNXdWH (C_and_CPP)