それぞれの不完全な平方根の連分数の期間があるリストのリストを使用しています。
私がそれらを使ってやろうとしているのは、各リストで最大の繰り返しパターンのサイズをチェックすることです。
たとえば、いくつかのリスト:
[
[1,1,1,1,1,1....],
[4,1,4,1,4,1....],
[1,2,10,1,2,10....],
[1,1,1,1,1,4,1,4,1,20,9,8,1,1,1,1,1,4,1,4,1,20,9,8....],
[2,2,2,4,2,2,2,4....],
[1,1,1,13,21,45,3,3,1,16,4,1,4,1,1,1,24,15,1,1,1,13,21,45,3,3,1,16,4,1,4,1,1,1,24,15....],
[1,1,1,3,28,1,1,1,3,28,67,25,1,1,1,3,28,1,1,1,3,28,67,25....]
]
私が取り組んできた2つの同様の方法は次のとおりです。
def lengths(seq):
for i in range(len(seq),1,-1):
if seq[0:i] == seq[i:i*2]:
return i
def lengths(seq):
for i in range(1,len(seq)-1):
if seq[0:i] == seq[i:i*2]:
return i
これらは両方ともリストのサイズを取得し、現在の位置からリストのインデックス付きサイズを比較します。問題は、最初の1桁が大きく始まり、1つの大きなパターンだけであるため、1桁の繰り返しに対して間違って返されることです。2番目の問題は、6番目と7番目の例のリストのようなネストされたパターンがあり、ネストされたループに満足し、パターンの残りの部分を見落とすことです。