请问VB高手一个优化算法的问题

来源:百度知道 编辑:UC知道 时间:2024/06/28 15:07:28
我有一组数,13行7列,要求从每行里的数都要和另外12行的数进行相乘,如(1,1)*(2,1)*(3,1)....*(13,1)等,即有13^7个结果。
我是这样的:
for i=1 to 7
for j=1 to 7
.
.
.
for m=1 to 7
相乘
next
next
这样,要算十几个小时,请问实现上列运算,有没有好的优化方法呢?

首先我要纠正您的一个错误,结果应有7^13个
我觉得是可以优化算法的

13个循环是一个也少不了,但循环内的计算可以优化
你可以在第12个循环后记录一次运算结果,该结果与第13个循环相乘,产生7个结果。这样下来,每次你可以少运算6次,因此您将提升到7倍的速度!
原先的十几个小时算下来,优化后您得到同样的结果,将是1.4~2.5个小时

从算法上讲,只有按部就班的算,因为没个数都要经过计算,所以为了遍历整个数据结构,必须有这样的一个过程,不能再优化了,除非提升硬件,可以缩短时间!

像二楼所说,的确可以在循环内部进行优化,但是不必在第六次循环处优化,你也可以从第三,四,五,六,七这些循环进入之前把前面N个数的计算存入一个变量,在循环中调用,这样就可以节省运算时间

为什么要算那么大的数列,有什么用?

另外7^13和13^7差的很多啊!