使用带有临时结果和计数器的for循环或while循环.后一种方法最有效(通常).
简单版本,伪代码:
iterations = 0; tmp = origin_matrix; do tmp = operation(tmp); iterations += 1; while tmp != origin_matrix; return iterations;
编辑:你也可以使用简单的while结构:
while True: tmp = operation(tmp) iterations += 1 if tmp == origin_matrix: break # Or you could return here.
编辑:那是为functionB.我不知道他们是单独的问题.对于该示例,operation(x)= functionA(x,1).
对于functionA,你最有可能使用for循环.伪代码:
matrix = origin_matrix for i in range(N_times): matrix = operation(matrix) return matrix