作者bridge23 (橋)
看板MATLAB
標題Re: [問題]for迴圈問題
時間Thu Oct 11 17:21:04 2012
只提供想法 沒有實際驗證
主要用11進位的概念操作
b=[11:-1:0];
c=11.^b; //(11^11 11^10 ......11^0)
for k = 0 : 11^12-1
d=floor(k./c);
a=mod(d,11)+1; // (11進位完成 為 1~11的數字)
result=fun_A(a);
end
至於這樣會比 12層 for迴圈快多少 我就不知道了
※ 引述《ben2103gto (不要調查我)》之銘言:
: 小弟新手,問到蠢問題 請勿見怪。
: 採用方法: Brute Force,以下提供問題碼
: for i=1:11
: for j=1:11
: for k=1:11
: .
: a=[i j k l m n o p q r s t];
: . result=fun_A(a);
: .
: end
: end
: end
: 打出這麼笨的問題碼,請原諒。
: 假使總共有12個變數,每個變數有一到十一的可能(1 2 3...11)
: 每次產生一種組合就會跑出一個結果值,
: 目的就是要取得什麼組合下會有最大的result值。
: 想請問這種巢狀迴圈有沒有更聰明的寫法,不然要跑超久 = =冏
: 感謝大家耐心看完此問題,在煩請大家給我點意見。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.71.216.251
※ 編輯: bridge23 來自: 210.71.216.251 (10/11 17:22)
※ 編輯: bridge23 來自: 210.71.216.251 (10/11 17:23)
※ 編輯: bridge23 來自: 210.71.216.251 (10/11 17:24)
→ ben2103gto:有稍微試了一下,結果迴圈數太多 跑出下述訊息 10/12 09:21
→ ben2103gto:Forloop index is too large Truncating to 2147483647 10/12 09:22
→ ben2103gto:有點杯具 10/12 09:23
→ kdjf:11^12~=3e12=3T, cpu如果有3G的速度,最少也要1k秒 10/12 11:27
→ kdjf:你的計算一次不會只有一個cpu cycle. 所以它就是這麼慢 10/12 11:28
→ ben2103gto:之前試過使用ga function 無法求出"最佳"解 10/12 13:49
→ ben2103gto:暴力法又花太多時間 有點不知該如何處理 QQ 10/12 13:50