Nombres de Delannoy
Dans une grille de taille \(n×m\), on souhaite compter tous les chemins allant du coin inférieur gauche (au Sud-Ouest) vers le coin supérieur droit (au Nord-Est).
Les seuls mouvements autorisés sont :
- ↑ Aller au Nord d'une unité.
- → Aller à l'Est d'une unité.
- ↗ Aller au Nord-Est en diagonale, sur le prochain nœud.
Écrire une fonction delannoy qui prend en paramètres deux entiers n et m et renvoie le nombre de chemins allant de \((0, 0)\) jusqu'à \((n, m)\).
Pour ce faire, on remarquera :
- Si
noumest nul, - alors le seul chemin est en ligne droite, la réponse est
1, -
sinon : -
netmsont non nuls et les chemins qui vont en(n, m)se répartissent en trois catégories :- ceux qui venaient de
(n - 1, m ), - ceux qui venaient de
(n , m - 1), - ceux qui venaient de
(n - 1, m - 1),
- ceux qui venaient de
-
ces trois catégories sont distinctes et se comptent bien par récursivité.
-
On utilisera un dictionnaire pour mémoriser les résultats intermédiaires.
Exemples
>>> delannoy(3, 3)
63
>>> delannoy(2, 1)
5
Compléter le code :
Tronquer ou non le feedback dans les terminaux (sortie standard & stacktrace / relancer le code pour appliquer)
Si activé, le texte copié dans le terminal est joint sur une seule ligne avant d'être copié dans le presse-papier
.128013buS-[,3_4l(wn/8p)aPk0:hors1v7c256mgyd]i9eft =+050L0P0R0s0N0k0A0S0E0k0s0A0A0T010R0N0q010406050A0c0I0I0s0z0K040d0y0k0c0/0y0n050o0_0{0}0 0@0q04181f051i0o1i1k1f0@0L0N0C0%0)0+0-0x0N0J0x0k1y0x0R0=050Y0b0k0P1t0*0,011x1z1B1z0R1H1J1F0R0b0y0L0 1G0z1g0R0x0%120A0q0s0n0-0F011L1v010Q0!0P0n0s0I0P1F1-1/1@1N1`1J1}1 0=0a0S0t0z0y0q0y0A0N150n0S0W1+0z0z0P0E2k18220n1g0o1)2x0R1%1$1(0L240-1B0n1|2h1F1q1s0(1M2H0N2J0n1Z1r1F0q2q1g2v2x2#0^1.2l2P1^2U0z0|0k0=0S0B2u2)0?2(232+1N2-2/2;0F2@1/2_2v2G012~0s2:040S0h322w0@352|0-383a0S0j3e342)363k2;0G3o3g3q3i370y2.392;0H3v2`2*1u2}3A2 3b0D3F3h3I3j3K3C3b0p3O3x3Q3z3B3l0O3W2{3Y3s040B0v3%3H2Q3Z3L0B2?192^1h2Z182N2A0L2E360E1Z201g3}1j3{2%3^3305420W2!3X3:0n0=0W0)0n2U0K0i1 0I3o0S3G360y0=0T4s4u3y0n0b4j0N2s3o4A3Y0;040l0r3v063w3(3:0u4j0P0Q4H3P3:0m2;4X4g2,0Q4U4l4n4$4R1^4K0l4-3/2,0=174a2w4I3:4K0g4z4Y4@044r4`4f4.1N4K0r0w3v0S5d4t511N4T040N4W555f4%580=4;554|524_2%5g0-4~505o3j0=545w5B01595A570-0y4!042U0R5J4?1N5M0=2S5R3r4*1/4n4p0P5E3_5x5H0=5b55065e5:5n5K015i5k5X3y4:4=5Y5O5`3Y4w040T4y5m5t1N0I0N0=3-5s5*5I665*5U043A604}5q5}4B5D6l1^62646r686a046c5F5?595-2#5/5;6G675C042q0_0k0Y5Q6g5G6t6v0-690=3@6E6G5d6I5@0=0P0#0P6o4J5,5c6Z5:6#4i6K0P6M6O6T016S6Q5?6=4k5!0y0K6+6m4L745u6`620e6`6V3+775p044 6}5S6J5(4b6e0=4N7j4v0=0U6`6 6(71736d5G5|7A6~4^7f5y0=7i2#5=7k376q7r3y7a7c6x6X5)7B7p797t7v5Z4m727G5+767D7M6=5v2^7L7s047b7P3Y7d7U7n7W7h7!537Y7=7S6W7(6f6Y6Z6;7#5#4q840=0f5r6A7,7F7+365z7@4h7O8g8k7p0M80657K886?6^0s6P866!5*5i2q0R0c0z7.337:6p04707$4o8b8j5{8d8f7V7E5 8S6,7}8m527m4{7o040r8s5.184d0P2x2Y8;3|1r3~2A2C2y1Y1!2A0s1I8@0o3}0@940X0Z0#04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)