18/07/28 19:04:59.11 FfbExHmU.net
Python版
def collatz_bits(n):
result = [0] * pow(2,n)
for i in range(1, pow(2,n)+1):
x = i
s = ""
for j in range(n):
s += str(x % 2)
x = x // 2 if x % 2 == 0 else (3*x+1) // 2
result[int(s,2)] = i
return result
def print_collatz_bits(n):
for bits, k in enumerate(collatz_bits(n)):
print(f"{bits:0{n}b}:{k}")
>> collatz_bits(3)
[8, 4, 2, 6, 5, 1, 3, 7]