作者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)
1F:→ ben2103gto:有稍微试了一下,结果回圈数太多 跑出下述讯息 10/12 09:21
2F:→ ben2103gto:Forloop index is too large Truncating to 2147483647 10/12 09:22
3F:→ ben2103gto:有点杯具 10/12 09:23
4F:→ kdjf:11^12~=3e12=3T, cpu如果有3G的速度,最少也要1k秒 10/12 11:27
5F:→ kdjf:你的计算一次不会只有一个cpu cycle. 所以它就是这麽慢 10/12 11:28
6F:→ ben2103gto:之前试过使用ga function 无法求出"最佳"解 10/12 13:49
7F:→ ben2103gto:暴力法又花太多时间 有点不知该如何处理 QQ 10/12 13:50