この関数の目的は、操作を実行した後に1になるまでにステップ数を数えることです。関数に入力した数値は、数値が偶数の場合は2で割り、奇数の場合は3で3に増やします。これらの操作は、その番号に到達するまで実行されます。例えば、数字3で始めると、3> 10> 5> 16> 8> 4> 2> 1のようになります。関数は8ステップを要したので数字 "8"を返す必要があります3を掛けて3を掛け、奇数に1を足して3にする。数値が1になるまでのステップ数をカウントする
ここまでは私のコードです。私は、私の関数が最初のステップを返す方法を理解していました(例:10と6の3つのリターン3を返すことができました)が、私の関数に1に達するまでに要したステップ数を計算する方法を理解できません。
def collatz_counts(n):
total = 0
while n > 1:
if n % 2 == 0:
n =(n // 2)
total += 1
elif n % 2 == 1:
n = (3 * n + 1)
total += 1
return total
を取得するために、1に初期
total
値を調整する必要が7を返します。 – idjawそれはちょうど7つのステップのように見える... – AChampion
@AChampionその8最初のステップを計る – famguy74