A373. Les nombres en or ****
On note φ le nombre d'or qui est la plus grande racine réelle de l'équation x² − x − 1 = 0.
Un entier naturel n est dit nombre en or s'il existe:
- deux entiers naturels p et q,
- p + q + 1 entiers ap, ap-1, ...a1 ,a0 ,a-1, a-2, ....a-q + 1, a-q ne prenant que les valeurs 0 et 1 tels que:
n = ap.φp + ap-1.φp-1 + ....+ a .φ + a + a₁ ₀ -1. φ-1 + ...+a-q.φ-q =
∑
i=p i=−q
a
i
i .Par exemple l'entier 1 est un nombre en or car on peut écrire 1 = φ-1 + φ-2 avec ai = 0 pour ≥ 0, a-1 = a-2 = 1.
Q1 Montrer que les entiers 2 et 3 sont des nombres en or et en donner une représentation en or.
Q2 Trouver une représentation en or des entiers 2018 et 2019.
Q3 Démontrer que tous les entiers naturels admettent une représentation en or.
Q1 :
On vérifie que :
2 =10 ,0011
=
−3
−43=100 , 0011
=
2
−3
−4Q2 :
On vérifie que :
2018 =1010010000010100 , 0101000000100001
2019 =1010010000010101 , 0101000000100001
Q3 : Démontré par Bergman : https://fr.wikipedia.org/wiki/Base_d%27or
Annexe : Programme « Python »
def f(n):
l = []
p = (1+5**.5)/2 for i in range(50):
l.append(p**(25-i)) m = ""
ok = 0 okk = 0
for i in range(len(l)):
if (l[i] > n) & (okk ==1) & ( n>0):
m = m+ str(0) if l[i] < n : okk = 1 m = m+str(1) n = round(n-l[i],9) if abs(n) < 0.000000001 : n = 0
if (l[i] ==1) and ok == 0 : m = m+","
ok = 1 return m
for n in range(2010,2020):
print(n," représentation en or : ",f(n))