Problème de l'échiquier de Sissa

Un article de Wikipédia, l'encyclopédie libre.
À la cinquième case, l'échiquier possède 31 grains de riz.

Le problème de l'échiquier de Sissa, également connu sous les noms de problème des grains de blé et de l'échiquier et problème des grains de riz et de l'échiquier[1], est un problème mathématique pouvant s'exprimer ainsi :

« On place un grain de riz (ou de blé) sur la première case d'un échiquier. Si on fait en sorte de doubler à chaque case le nombre de grains de la case précédente (un grain sur la première case, deux sur la deuxième, quatre sur la troisième, etc.), combien de grains de riz obtient-on au total ? »

Le problème peut être résolu par une addition où chaque valeur est le double de la précédente. Puisqu'un échiquier possède 64 cases, le total des grains est de 1 + 2 + 4 + 8 + ... jusqu'à la 64e case. On obtient ainsi 18 446 744 073 709 551 615 grains, ce qui correspond au 64e nombre de Mersenne.

Solution[modifier | modifier le code]

Mathématiquement[modifier | modifier le code]

Les lettres sont des abréviations pour les préfixes du SI d'unités

La solution simple est de doubler chaque valeur manuellement à chaque étape et d'additionner l'ensemble des valeurs :

est le nombre total de grains.

La série peut également être exprimée à l'aide des puissances de 2 :

ce qui peut s'exprimer sous la notation :

Le problème peut également être résolu beaucoup plus facilement en utilisant la formule :

qui peut être démontrée ainsi :

En multipliant chaque côté par 2 :

On soustrait ensuite la série originale de chaque côté :

Cette solution est un cas particulier de la somme d'une série géométrique donnée par :

est la quantité de base, est la modification à chaque étape de cette quantité et est le nombre de fois que cette dernière est doublée.

Dans ce problème-ci, , et .

En code (Python)[modifier | modifier le code]

Ce problème peut également être résolu avec un très court programme en Python.

Il existe de nombreuses résolutions possibles mais l'une des plus simples ne nécessitant aucun paquet additionnel est celle ci-dessous:

r = 1
t = 1
for i in range(63):
    r = r*2
    t = t+r
print(t, "grains de riz")

On commence par définir r comme le nombre de grain de riz sur une certaine case de l'échiquier, t comme le nombre total de grain de riz.

r = 1
t = 1

À ce stade, le programme a déjà traité la première case de l'échiquier sur laquelle on a un seul grain de riz.

Pour les 63 restantes, on déclare une boucle for qui s'effectuera pour les valeurs de i dans une portée de 63 (donc i de 0 à 63).

Lors de chaque passage de la boucle, on multiplie par 2 le nombre de grain de riz sur la case (r) et on redéfini le total des grains (t) en y ajoutant la nouvelle valeur de r.

for i in range(63):
    r = r*2
    t = t+r

Pour finir le code on renvoi la valeur du nombre total de grain de riz (t) après les 63 passages de la boucle for par la fonction primaire print().

print(t, "grains de riz.")

La légende[modifier | modifier le code]

En Inde, le roi Belkib (ou Bathait), qui s'ennuie à la cour, demande qu'on lui invente un jeu pour le distraire. Le sage Sissa invente alors un jeu d'échecs, ce qui ravit le roi. Pour remercier Sissa, le roi lui demande de choisir sa récompense, aussi fastueuse qu'elle puisse être. Sissa choisit de demander au roi de prendre le plateau du jeu et, sur la première case, poser un grain de riz, ensuite deux sur la deuxième, puis quatre sur la troisième, et ainsi de suite, en doublant à chaque fois le nombre de grains de riz que l’on met. Le roi et la cour sont amusés par la modestie de cette demande. Mais lorsqu'on la met en œuvre, on s'aperçoit qu'il n'y a pas assez de grains de riz dans tout le royaume pour la satisfaire[2],[3].

Si l'on se base sur la production annuelle de riz à l'heure actuelle (479 millions de tonnes par an), il faudrait un peu plus de 1 539 années pour réunir tous les grains de riz nécessaires à la réalisation de ce problème. Mais si l'on considère le temps de conservation du riz qui est d'un peu plus de 30 ans. Il serait en réalité impossible de fournir le riz nécessaire à ce problème, à moins d'augmenter la production de riz d'au moins 5100% soit de multiplier la production actuelle par 52.

Notes et références[modifier | modifier le code]

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Lien externe[modifier | modifier le code]