带有一个陈述的第一个循环
A[i,j]=B[i-1,j];
只有一个陈述的第二个循环
B[i,j]=A[i,j];
我可以将这两个独立的循环融合到一个循环中。
合法吗?
答案 0 :(得分:0)
不,你不能将它们组合成一个循环,如下面的Python测试程序所示:
a = [1,2,3,4]
b = [5,6,7,8]
for i in range(1,len(a)):
a[i] = b[i-1]
for i in range(1,len(a)):
b[i] = a[i]
print a, b
a = [1,2,3,4]
b = [5,6,7,8]
for i in range(1,len(a)):
a[i] = b[i-1]
b[i] = a[i]
print a, b
它的输出为您提供了两个不同的结果:
[1, 5, 6, 7] [5, 5, 6, 7]
[1, 5, 5, 5] [5, 5, 5, 5]
他们不等同的原因是,在双循环解决方案中a[n]
是根据b[n-1]
的原始值设置的。
在单循环解决方案中,a[n]
是根据b[n-1]
的更新值设置的。
并且b[n-1]
将在循环的上一次迭代中被更改。