Статьи

Золотые струны и кроличья константа

Золотые строки аналогичны числам Фибоначчи, за исключением того, что используется конкатенация, а не сложение.

Начните с  s 1  = «1» и  s 2  = «10». Затем определите  s n  =  s n-1  +  s n-2,  где «+» означает конкатенацию строк.

Первые несколько золотых струн

  • «1″
  • «10″
  • «101″
  • «10110″
  • «10110101″

Длина  s n  равна  F n +1n + 1-е число Фибоначчи. Кроме того,  s n  содержит  F n -1  1 и  F n -2  0. (Источник:  Великолепное Золотое Сечение ).

Если мы интерпретируем  s n  как дробную часть двоичного числа, последовательность сходится к  постоянной кролика  R  = 0,7098034428612913…

Оказывается, что  R  связано с золотым сечением ф

R = \ sum_ {i = 1} ^ \ infty 2 ^ {- \ lfloor i \ phi \ rfloor}

где ⌊ i  φ⌋ — наибольшее целое число, не превышающее  i φ.

Вот небольшой код Python для распечатки первых нескольких золотых строк и приближение к константе кролика.

from sympy.mpmath import mp, fraction
 
a = "1"
b = "10"
for i in range(10):
    b, a = b+a, b
    print(b)
 
n = len(b)
mp.dps = n
denom = 2**n
num = int(b, 2)
 
rabbit = fraction(num, denom)
print(rabbit)

Обратите внимание, что код устанавливает количество десятичных знаков  mp.dps, равное длине строки  b. Это потому, что требуется   ровно n знаков после запятой, чтобы точно представить рациональное число со знаменателем 2 n .