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
.128013ur6km cpiy/72tP)=lh0sebwS_53(-av,1:[n84dg+9]of050O0w0o0F0j0s0v0g0h0s0F0v0v0r010o0j0i010406050v0b0f0f0F0c0k040z0T0s0b0/0T0L050l0_0{0}0 0@0i04181f051i0l1i1k1f0@0O0j0G0%0)0+0-0t0j0P0t0s1y0t0o0=050Y0x0s0w1t0*0,011x1z1B1z0o1H1J1F0o0x0T0O0 1G0c1g0o0t0%120v0i0F0L0-0n011L1v010U0!0w0L0F0f0w1F1-1/1@1N1`1J1}1 0=0a0g0p0c0T0i0T0v0j150L0g0W1+0c0c0w0h2k18220L1g0l1)2x0o1%1$1(0O240-1B0L1|2h1F1q1s0(1M2H0j2J0L1Z1r1F0i2q1g2v2x2#0^1.2l2P1^2U0c0|0s0=0g0I2u2)0?2(232+1N2-2/2;0n2@1/2_2v2G012~0F2:040g0C322w0@352|0-383a0g0N3e342)363k2;0B3o3g3q3i370T2.392;0d3v2`2*1u2}3A2 3b0m3F3h3I3j3K3C3b0M3O3x3Q3z3B3l0R3W2{3Y3s040I0u3%3H2Q3Z3L0I2?192^1h2Z182N2A0O2E360h1Z201g3}1j3{2%3^3305420W2!3X3:0L0=0W0)0L2U0k0A1 0f3o0g3G360T0=0r4s4u3y0L0x4j0j2s3o4A3Y0;040D0q3v063w3(3:0e4j0w0U4H3P3:0y2;4X4g2,0U4U4l4n4$4R1^4K0D4-3/2,0=174a2w4I3:4K0H4z4Y4@044r4`4f4.1N4K0q0J3v0g5d4t511N4T040j4W555f4%580=4;554|524_2%5g0-4~505o3j0=545w5B01595A570-0T4!042U0o5J4?1N5M0=2S5R3r4*1/4n4p0w5E3_5x5H0=5b55065e5:5n5K015i5k5X3y4:4=5Y5O5`3Y4w040r4y5m5t1N0f0j0=3-5s5*5I665*5U043A604}5q5}4B5D6l1^62646r686a046c5F5?595-2#5/5;6G675C042q0_0s0Y5Q6g5G6t6v0-690=3@6E6G5d6I5@0=0w0#0w6o4J5,5c6Z5:6#4i6K0w6M6O6T016S6Q5?6=4k5!0T0k6+6m4L745u6`620E6`6V3+775p044 6}5S6J5(4b6e0=4N7j4v0=0Q6`6 6(71736d5G5|7A6~4^7f5y0=7i2#5=7k376q7r3y7a7c6x6X5)7B7p797t7v5Z4m727G5+767D7M6=5v2^7L7s047b7P3Y7d7U7n7W7h7!537Y7=7S6W7(6f6Y6Z6;7#5#4q840=0K5r6A7,7F7+365z7@4h7O8g8k7p0S80657K886?6^0F6P866!5*5i2q0o0b0c7.337:6p04707$4o8b8j5{8d8f7V7E5 8S6,7}8m527m4{7o040q8s5.184d0w2x2Y8;3|1r3~2A2C2y1Y1!2A0F1I8@0l3}0@940X0Z0#04.
# Tests(insensible à la casse)(Ctrl+I)
(Alt+: ; Ctrl pour inverser les colonnes)
(Esc)