2014-03-07 50 views
1

我正在寫一個包含六個循環的python程序。該程序給出了每行合計爲kt [i]的3x3矩陣的所有組合。我想知道是否有任何優化這個程序來減少循環,因爲使用嵌套在一起的太多循環並不是很好。多環路的優化

for r0 in range(0,kt[0]+1): 
    for s0 in range(0,kt[0]+1-r0): 
     k[0]=[r0,s0,kt[0]-r0-s0] 
     for r1 in range(0,kt[1]+1): 
      for s1 in range(0,kt[1]+1-r1): 
       k[1]=[r1,s1,kt[1]-r1-s1] 
       for r2 in range(0,kt[2]+1): 
        for s2 in range(0,kt[2]+1-r2): 
         k[2]=[r2,s2,kt[2]-r2-s2] 
         do something here 
+0

使用numpy的庫 看看這個問題 http://stackoverflow.com/questions/211160/python-inverse-of-a-matrix – Rami

+0

這可能是有益的如果你可以簡化你的問題得到一個答案 – zhangxaochen

+0

舉一個完整的例子,用'kt'和'k'的值。 – U2EF1

回答

0

如何使用itertools.permutations

import itertools 

elems = range(4) 
for row1 in itertools.permutations(elems, 3): 
    for row2 in itertools.permutations(elems, 3): 
     for row3 in itertools.permutations(elems, 3): 
     print '{}\n{}\n{}\n{}'.format(row1, row2, row3, '-'*80) 
     print '='*80