Aller au contenu

Subdivisions de polygone⚓︎

Les nombres d'Hipparque sont nommés d'après le mathématicien et astronome grec, qui, selon Plutarque, connaissait certainement ces nombres.

Culture

  • Hipparque a été actif en Grèce, au moins entre 147 et 127 av. J.-C.
  • Plutarque est un philosophe majeur de la Rome antique, qui a vécu de 46 à 125, soit deux siècles après Hipparque.

Les \(s_4=11\) subdivisions d'un pentagone

On admettra que :

  • Le \(n\)-ième nombre \(s_n\) de la suite est le nombre de subdivisions d'un polygone à \(n + 1\) côtés en polygones plus petits par l'adjonction de diagonales au polygone de départ.
  • \(s_2=1\), et \(s_3=3\).
  • Une formule pour calculer \(s_n\) avec \(n>3\) est :
\[s_n = \frac{\left((6n-9)s_{n-1} - (n-3)s_{n-2}\right)}n\]

Écrire une fonction telle que hipparque(n) renvoie le nombre \(s_n\) pour \(1 < n <100\).

Exemples

🐍 Console Python
>>> hipparque(3)
3
>>> hipparque(4)
11
>>> hipparque(5)
45
###
# testsbksl-nlbksl-nlassert hipparque(3) == 3bksl-nlassert hipparque(4) == 11bksl-nlassert hipparque(5) == 45bksl-nlbksl-nl# autres testsbksl-nlbksl-nlHIPPARQUE = [bksl-nl None, 1, 1, 3, 11, 45, 197, 903, 4279, 20793, 103049,bksl-nl 518859, 2646723, 13648869, 71039373, 372693519, 1968801519,bksl-nl 10463578353, 55909013009, 300159426963, 1618362158587,bksl-nl 8759309660445, 47574827600981, 259215937709463, 1416461675464871bksl-nl]bksl-nlbksl-nlfor n, attendu in enumerate(HIPPARQUE):bksl-nl if n > 1:bksl-nl assert hipparque(n) == attendu, f"Erreur avec n = {n}"bksl-nlbksl-nlHIPPARQUEpy-undMOD = [None, 1, 1, 3, 11, 45, 197, 903, 4279, 20793, 103049, 518859, 2646723, 13648869, 71039373, 372693519, 968801519, 463578353, 909013009, 159426963, 362158587, 309660445, 827600981, 937709463, 675464871, 824437545, 294485657, 935918683, 480318899, 548921813, 996567325, 807180831, 87926239, 951594977, 230450209, 624841507, 548259307, 663097869, 27088357, 621111719, 111863447, 607546137, 696929449, 144967147, 440738979, 954316741, 953278125, 47978543, 885177039, 715682513, 593205809, 310379699, 518807003, 524384509, 957814133, 730733495, 574744711, 402287369, 271801017, 461750139, 443027347, 661954997, 728242749, 396893247, 756439999, 101480897, 554808897, 545449539, 655467467, 586444269, 144461061, 343127495, 377432183, 984924409, 508708553, 605678859, 810562179, 900836773, 867845069, 558029903, 937600175, 21098161, 123414609, 345323987, 415937979, 871392477, 945036437, 41456599, 649862247, 703510249, 622510297, 114056347, 136186739, 370983317, 58539869, 902214751, 240745375, 393184673, 752888929, 370649443]bksl-nlMOD = 10py-strpy-str9bksl-nlfor n, attendu in enumerate(HIPPARQUEpy-undMOD):bksl-nl if n > 1:bksl-nl assert hipparque(n) % MOD == attendu, f"Erreur avec n = {n}"bksl-nlbksl-nl ∞/∞

def hipparque(n):bksl-nl ...bksl-nlbksl-nlbksl-nlbksl-nl# testsbksl-nlbksl-nlassert hipparque(3) == 3bksl-nlassert hipparque(4) == 11bksl-nlassert hipparque(5) == 45bksl-nlbksl-nlNone

A

Z

Retour en haut de la page