Re: [問題] 關於在陣列中快速產生亂數的方法
之前用 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
10/03 22:11, 1F
→
10/03 22:12, , 2F
10/03 22:12, 2F
→
10/03 23:06, , 3F
10/03 23:06, 3F
→
10/03 23:12, , 4F
10/03 23:12, 4F
→
10/03 23:12, , 5F
10/03 23:12, 5F
→
10/03 23:23, , 6F
10/03 23:23, 6F
→
10/03 23:24, , 7F
10/03 23:24, 7F
→
10/03 23:26, , 8F
10/03 23:26, 8F
推
10/04 11:27, , 9F
10/04 11:27, 9F
討論串 (同標題文章)
C_and_CPP 近期熱門文章
PTT數位生活區 即時熱門文章