私は、(反復するまで)任意の非平方数の連続する小数点を見つけることを試みています。例えば平方根の端数を計算すると奇妙な結果が出る
:入力:23 = [4; 1,3,1,8]
私のコードは、(それは非常に不器用だが)多くの数字のために動作します。 それはそれは出力23のために働く:
[4, 1, 3, 1, 8, 1, 3, 1]
私は入力61それは決して停止しないとき...ここで出力の行を
(1、3、余分な1を無視する)しかし:
[7, 1, 4, 3, 1, 2, 2, 1, 3, 4, 1, 14, 1, 4, 3, 1, 2, 2, 1, 4, 5, 1, 6900]
それは(4、5の代わりに、3、4、および6900は場違いです)必要がありますように14した後、それは繰り返さない
それがコーディングに来るとき、私はそう、noobのビットですもしそれが
def find_fractions(n):
d = math.sqrt(n)
x = 0
y = 0
safeint = 0
safe = True
a = ["a", "b", "c", "d"]
while a[1:int(len(a)/2)] != a[int(len(a)/2) + 1:]:
a.append(math.floor(d))
d = 1/(d - math.floor(d))
print(a)
safeint += 1
if safeint > 4 and safe:
del a[0]
del a[0]
del a[0]
del a[0]
safe = False
print(a)
find_fractions(23)
は編集:ここに私のコードです、それは動作しませんし、どのように私はそれを
を修正する必要がありますなぜ一つは、私が言うことができるではない63あなたが持っているどのような61
達成したいことの一般的な数学的説明を教えてください。 – albert
「63」のために私にとってはうまくいって、 '[7、1、14、1、14、1、14、1]'になります。 64のために 'ZeroDivisionError'を与えます – vsminkov
基本的に私はこれを次のようにしています:http://math.stackexchange.com/questions/265690/continued-fraction-of-a-square-rootそして、正方形の番号 – Sorrells