看板 C_and_CPP 關於我們 聯絡資訊
之前用 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
Schottky:compile不過讓人覺得很沒誠意啊,至少code要寫到可以跑吧? 10/03 22:11
Schottky:不然直接寫pseudo code也可以,還在書名烙什麼C語言... 10/03 22:12
EdisonX:compile 不過是有點扯...第一版沒這問題說 10/03 23:06
azureblaze:那個用K&R時代的compiler說不定能跑XD 10/03 23:12
azureblaze:雖然看起來有人連「"」都翻譯了 10/03 23:12
Schottky:不行, 我試過了... XD 10/03 23:23
Schottky:那不是K&R的問題,而是根本就胡亂include沒有好好宣告 10/03 23:24
Schottky:不過既然第一版沒這問題,可見至少有一個版本是正確的... 10/03 23:26
abab7974:感謝E大的資訊,我之後會來研究看看的,謝謝 10/04 11:27