Retour à la page précédente


Solution : somme des chiffres

Combien existe-t-il de nombres entiers dont l'écriture décimale satisfait aux deux conditions : elle ne contient pas de 0 et la somme de ses chiffres vaut 69 ?

Récurrence

Soit Sn le nombre d'entiers dont l'écriture décimale satisfait aux deux conditions : elle ne contient pas de 0, et la somme de ses chiffres vaut n.

On pose S0 = 1, et on a évidemment S1 = 1. Ensuite, on raisonne par récurrence.

Par exemple pour trouver S4 :

soit S4 = S3 + S2 +S1 + S0 = 4 + 2 + 1 + 1 = 8, les huit entiers sont : 1111, 112, 121, 13, 211, 22, 31, 4

Jusqu'à S9 chaque Sn est la somme des précédents, ensuite, il faut se limiter aux 9 précédents.

Ce qui donne la formule : Sn = Sigma(i=1 to min(9,n), Sn-i )

Pour obtenir une relation uniforme (éviter le min), on peut définir Sn = 0 si n < 0.


Si on veut la réponse effective pour S69 :

somme := proc(n)

option remember;

if n = 0 then 1

elif n < 0 then 0

else somme( n - 1 ) + somme( n - 2 ) + somme( n - 3 ) + somme( n - 4 )

+ somme( n - 5 ) + somme( n - 6 ) + somme( n - 7 ) + somme( n - 8 )

+ somme( n - 9 )

end if

end proc

> seq(somme(i),i=1..69);

1, 2, 4, 8, 16, 32, 64, 128, 256, 511, 1021, 2040, 4076, 8144, 16272, 32512, 64960,

129792, 259328, 518145, 1035269, 2068498, 4132920, 8257696, 16499120,

32965728, 65866496, 131603200, 262947072, 525375999, 1049716729,

2097364960, 4190597000, 8372936304, 16729373488, 33425781248,

66785696000, 133439788800, 266616630528, 532707885057, 1064366053385,

2126634741810, 4249078886620, 8489784836936, 16962840300384,

33892254819520, 67717723943040, 135302008097280, 270337399564032,

540142091243007, 1079219816432629, 2156312998123448, 4308376917360276,

8608264049883616, 17199565259466848, 34365238264114176,

68662758804285312, 137190215600473344, 274110093801382656,

547680045511522305, 1094280871206611981, 2186405429415100514,

4368502481912840752, 8728396699775797888, 17439593834292128928,

34844822430320143680, 69620982101836002048, 139104773988071530752,

277935437882341678848