Loading [MathJax]/jax/output/CommonHTML/jax.js
Back
Close

Recueil d'exercices pour apprendre Python au lycée

M_C
27.8K views

Polynôme optimal

Difficulté : Moyen (35%) Origine : Projet Euler n°101

Si on nous donne les k premiers termes d'une suite, il est impossible de dire avec certitude la valeur du terme suivant car il y a une infinité de polynomes qui peut modéliser la suite.

Prenons comme exemple la suite des cubes. Elle est définie par la fonction génératrice un=n3 et donne : 1, 8, 27, 64, 125, 216, ...

Supponsons qu'on connaisse uniquement les 2 premiers termes de la suite. En utilisant le principe "le plus simple est le meilleurs", on peut considérer une relation linéaire et prédire que le terme suivant sera 15 (on ajoute 7 ). Mais si on nous avait donné les trois premiers termes de la suite, par le même principe de simplicité, on aurait pu supposer que la relation était du second degré.

On peut définir OP(k,n) comme étant le n-ieme terme de la suite associée au polynome optimal pour les k premier termes d'une suite donnée. Il est clair que OP(k,n) va exactement engendrer les termes de cette suite pour n ≤ k, et potentiellement le premier terme incorrect (PTI) sera OP(k,k+1) et dans ce cas, on l'appellera le mauvais OP (MOP).

Au départ, si on ne nous donne qu'un terme de la suite, le plus simple sera de considérer un constante. Donc pour n ≥ 2, OP(1, n) = u1.

Ainsi, on obtient les OP pour la suite des cubes :

OP(1,n)=11,1, 1, 1, ...
OP(2,n)=7n61, 8, 15, ...
OP(3,n)=6n211n+61, 8, 27, 58, ...
OP(4,n)=n31, 8, 27, 64, 125, ...

Clairement, il n'y a pas de MOP pour k ≥ 4.

En considérant la somme des PTI engendrés par les MOP (indiqué en gras ci dessus), on obtient 1 + 15 + 58 = 74.

Considérons la suite engendré par le polynôme de degré 10 suivant :

un=1n+n2n3+n4n5+n6n7+n8n9+n10

Trouver la somme des PTI engendrés par les MOP.

On affichera le résultat avec print.

Polynôme optimal
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Point à l'intérieur d'un triangle

Difficulté : Moyen (15%) Origine : Projet Euler n°102

Trois points distincts sont placés au hasard sur un plan cartésien pour lesquelles -1000 ≤ x, y ≤ 1000, et tels qu'un triangle soit formé.

Considzrons les eux triangles suivants :

A(-340,495), B(-153,-910), C(835,-947)

X(-175,41), Y(-421,-714), Z(574,-645)

On peut vérifier que le triangle ABC contient l'origine alors que XYZ ne la contient pas.

On donne ci-dessous une liste contenant les coordonnées des trois sommets de mille triangles. Trouver le nombre de triangles qui contiennent l'origine à l'intérieur.

On affichera le résultat avec print.

Point à l'intérieur d'un triangle
# La liste des triangles sous la forme de triplet des coordonnées des points : ((x_A,y_A),(x_B,y_B),(x_C,y_C))
liste = [((-340, 495), (-153, -910), (835, -947)),
((-175, 41), (-421, -714), (574, -645)),
((-547, 712), (-352, 579), (951, -786)),
((419, -864), (-83, 650), (-399, 171)),
((-429, -89), (-357, -930), (296, -29)),
((-734, -702), (823, -745), (-684, -62)),
((-971, 762), (925, -776), (-663, -157)),
((162, 570), (628, 485), (-807, -896)),
((641, 91), (-65, 700), (887, 759)),
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ensembles de sommes spéciaux : Optimum

Difficulté : Difficile (45%) Origine : Projet Euler n°103

Notons S(A) la somme des éléments d'un ensemble A de taille n. On dira que A est un ensemble de sommes spécial si pour tous ensembles disjoints B et C, on a les deux propriétés suivantes qui sont vérifiées :

S(B) ≠ S(C) : c'est à dire que les sommes de sous ensembles sont toutes différentes
Si B contient plus d'éléments que C alors S(B) > S(C)

Si S(A) est minimisée pour un n donné, on dira que l'ensemble de somme spécial est optimum. Les cinq premiers de ces ensembles sont :

n = 1: {1}
n = 2: {1, 2}
n = 3: {2, 3, 4}
n = 4: {3, 5, 6, 7}
n = 5: {6, 9, 11, 12, 13}

Il semble que pour un ensemble optimum donné, A={a1,a2,...,an}, l'ensemble optimum suivant est de la forme B={b,a1+b,a2+b,...,an+b}, où b est l'élément au "milieu" de A.

En appliquant cette règle, on devrait s'attent à ce que l'optimum pour n=6 soit A = {11, 17, 20, 22, 23, 24}, avec S(A) = 117. Cependant, ce n'est pas un ensemble optimum car on peut trouve que l'ensemble optimum pour n=6 est A = {11, 18, 19, 20, 22, 25}, avec S(A) = 115 et qu'on peut lui faire correspond le nombre(créé en concaténant les valeurs de l'ensemble) 111819202225.

Trouver le nombre associé à l'ensemble optimum pour n=7.

Note : Ce problème est en relation avec le problème 105 et 106.

On affichera le résultat avec print.

Ensembles de sommes spéciaux : Optimum
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Nombres de Fibonacci pandigitaux

Difficulté : Moyen (25%) Origine : Projet Euler n°104

La suite de Fibonacci est définie par la relation de récurrence :

$`F_n = F_{n−1} + F_{n−2}`$, où $`F_1 = 1`$ and $`F_2 = 1`$.

Le nombre F541 qui possède 113 chiffres et le premier nombre de Fibonacco qui a ses 9 derniers chiffres qui forment un nombre 1-9 pandigital (C'est à dire qu'il contient exactement les chiffres de 1 à 9 mais pas forcément dans l'ordre). Le nombre F2749 qui possède 575 chiffres, est le premier nombre de Fibonacci qui a ses neuf premiers chiffres qui forment un nombre 1-9 pandigital.

Trouver l'indice k du premier nombre de Fibonacci Fk qui a, à la fois, ses neuf premiers chiffres qui forment un nombre 1-9 pandigital et ses 9 derniers chiffres aussi.

On affichera le résultat avec print.

Nombres de Fibonacci pandigitaux
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Ensembles de sommes spéciaux : Testing

Difficulté : Difficile (45%) Origine : Projet Euler n°105

Notons S(A) la somme des éléments d'un ensemble A de taille n. On dira que A est un ensemble de sommes spécial si pour tous ensembles disjoints B et C, on a les deux propriétés suivantes qui sont vérifiées :

S(B) ≠ S(C) : c'est à dire que les sommes de sous ensembles sont toutes différentes
Si B contient plus d'éléments que C alors S(B) > S(C)

Par exemple, {81, 88, 75, 42, 87, 84, 86, 65} n'est pas un ensemble de somme spécial car 65 + 87 + 88 = 75 + 81 + 84, alors que {157, 150, 164, 119, 79, 159, 161, 139, 158} satisfait les deux règles pour toutes les pairs de sous-ensembles et S(A) = 1286.

A partir de la liste de cent ensembles donnée ci-dessous contenant entre 7 et 12 éléments, identifier tous les ensembles de sommes spéciaux A1, A2, ..., Ak, et trouver la valeur de S(A1) + S(A2) + ... + S(Ak).

Note : Ce problème est en relation avec le problème 103 et 106.

On affichera le résultat avec print.

Ensembles de sommes spéciaux : Testing
# Liste des ensembles (donnés sous forme de listes) à tester
liste=[[81, 88, 75, 42, 87, 84, 86, 65], [157, 150, 164, 119, 79, 159, 161, 139, 158],[673, 465, 569, 603, 629, 592, 584, 300, 601, 599, 600], [90, 85, 83, 84, 65, 87, 76, 46], [165, 168, 169, 190, 162, 85, 176, 167, 127], [224, 275, 278, 249, 277, 279, 289, 295, 139], [354, 370, 362, 384, 359, 324, 360, 180, 350, 270], [599, 595, 557, 298, 448, 596, 577, 667, 597, 588, 602], [175, 199, 137, 88, 187, 173, 168, 171, 174], [93, 187, 196, 144, 185, 178, 186, 202, 182], [157, 155, 81,158, 119, 176, 152, 167, 159], [184, 165, 159, 166, 163, 167, 174, 124, 83], [1211, 1212, 1287, 605, 1208, 1189, 1060, 1216, 1243, 1200, 908, 1210], [339, 299,153, 305, 282, 304, 313, 306, 302, 228], [94, 104, 63, 112, 80, 84, 93, 96], [41, 88, 82, 85, 61, 74, 83, 81], [90, 67, 84, 83, 82, 97, 86, 41], [299, 303, 151, 301, 291, 302, 307, 377, 333, 280], [55, 40, 48, 44, 25, 42, 41], [1038, 1188,1255, 1184, 594, 890, 1173, 1151, 1186, 1203, 1187, 1195], [76, 132, 133, 144, 135, 99, 128, 154], [77, 46, 108, 81, 85, 84, 93, 83], [624, 596, 391, 605, 529,610, 607, 568, 604, 603, 453], [83, 167, 166, 189, 163, 174, 160, 165, 133], [308, 281, 389, 292, 346, 303, 302, 304, 300, 173], [593, 1151, 1187, 1184, 890, 1040, 1173, 1186, 1195, 1255, 1188, 1203], [68, 46, 64, 33, 60, 58, 65], [65, 43,88, 87, 86, 99, 93, 90], [83, 78, 107, 48, 84, 87, 96, 85], [1188, 1173, 1256, 1038, 1187, 1151, 890, 1186, 1184, 1203, 594, 1195], [302, 324, 280, 296, 294, 160, 367, 298, 264, 299], [521, 760, 682, 687, 646, 664, 342, 698, 692, 686, 672], [56, 95, 86, 97, 96, 89, 108, 120], [344, 356, 262, 343, 340, 382, 337, 175, 361, 330], [47, 44, 42, 27, 41, 40, 37], [139, 155, 161, 158, 118, 166, 154, 156,78], [118, 157, 164, 158, 161, 79, 139, 150, 159], [299, 292, 371, 150, 300, 301, 281, 303, 306, 262], [85, 77, 86, 84, 44, 88, 91, 67], [88, 85, 84, 44, 65, 91, 76, 86], [138, 141, 127, 96, 136, 154, 135, 76], [292, 308, 302, 346, 300, 324, 304, 305, 238, 166], [354, 342, 341, 257, 348, 343, 345, 321, 170, 301], [84,178, 168, 167, 131, 170, 193, 166, 162], [686, 701, 706, 673, 694, 687, 652, 343, 683, 606, 518], [295, 293, 301, 367, 296, 279, 297, 263, 323, 159], [1038, 1184, 593, 890, 1188, 1173, 1187, 1186, 1195, 1150, 1203, 1255], [343, 364, 388, 402, 191, 383, 382, 385, 288, 374], [1187, 1036, 1183, 591, 1184, 1175, 888, 1197, 1182, 1219, 1115, 1167], [151, 291, 307, 303, 345, 238, 299, 323, 301, 302], [140, 151, 143, 138, 99, 69, 131, 137], [29, 44, 42, 59, 41, 36, 40], [348, 329, 343, 344, 338, 315, 169, 359, 375, 271], [48, 39, 34, 37, 50, 40, 41], [593, 445, 595, 558, 662, 602, 591, 297, 610, 580, 594], [686, 651, 681, 342, 541, 687, 691, 707, 604, 675, 699], [180, 99, 189, 166, 194, 188, 144, 187, 199], [321, 349, 335, 343, 377, 176, 265, 356, 344, 332], [1151, 1255, 1195, 1173, 1184, 1186, 1188, 1187, 1203, 593, 1038, 891], [90, 88, 100, 83, 62, 113, 80, 89], [308, 303, 238, 300, 151, 304, 324, 293, 346, 302], [59, 38, 50, 41, 42, 35, 40], [352, 366, 174, 355, 344, 265, 343, 310, 338, 331], [91, 89, 93, 90, 117, 85, 60, 106],[146, 186, 166, 175, 202, 92, 184, 183, 189], [82, 67, 96, 44, 80, 79, 88, 76],[54, 50, 58, 66, 31, 61, 64], [343, 266, 344, 172, 308, 336, 364, 350, 359, 333], [88, 49, 87, 82, 90, 98, 86, 115], [20, 47, 49, 51, 54, 48, 40], [159, 79, 177, 158, 157, 152, 155, 167, 118], [1219, 1183, 1182, 1115, 1035, 1186, 591, 1197, 1167, 887, 1184, 1175], [611, 518, 693, 343, 704, 667, 686, 682, 677, 687, 725], [607, 599, 634, 305, 677, 604, 603, 580, 452, 605, 591], [682, 686, 635, 675,692, 730, 687, 342, 517, 658, 695], [662, 296, 573, 598, 592, 584, 553, 593, 595, 443, 591], [180, 185, 186, 199, 187, 210, 93, 177, 149], [197, 136, 179, 185,156, 182, 180, 178, 99], [271, 298, 218, 279, 285, 282, 280, 238, 140], [1187, 1151, 890, 593, 1194, 1188, 1184, 1173, 1038, 1186, 1255, 1203], [169, 161, 177,192, 130, 165, 84, 167, 168], [50, 42, 43, 41, 66, 39, 36], [590, 669, 604, 579, 448, 599, 560, 299, 601, 597, 598], [174, 191, 206, 179, 184, 142, 177, 180, 90], [298, 299, 297, 306, 164, 285, 374, 269, 329, 295], [181, 172, 162, 138, 170, 195, 86, 169, 168], [1184, 1197, 591, 1182, 1186, 889, 1167, 1219, 1183, 1033,1115, 1175], [644, 695, 691, 679, 667, 687, 340, 681, 770, 686, 517], [606, 524, 592, 576, 628, 593, 591, 584, 296, 444, 595], [94, 127, 154, 138, 135, 74, 136, 141], [179, 168, 172, 178, 177, 89, 198, 186, 137], [302, 299, 291, 300, 298, 149, 260, 305, 280, 370], [678, 517, 670, 686, 682, 768, 687, 648, 342, 692, 702], [302, 290, 304, 376, 333, 303, 306, 298, 279, 153], [95, 102, 109, 54, 96, 75, 85, 97], [150, 154, 146, 78, 152, 151, 162, 173, 119], [150, 143, 157, 152, 184, 112, 154, 151, 132], [36, 41, 54, 40, 25, 44, 42], [37, 48, 34, 59, 39, 41, 40], [681, 603, 638, 611, 584, 303, 454, 607, 606, 605, 596]]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Create your playground on Tech.io
This playground was created on Tech.io, our hands-on, knowledge-sharing platform for developers.
Go to tech.io
codingame x discord
Join the CodinGame community on Discord to chat about puzzle contributions, challenges, streams, blog articles - all that good stuff!
JOIN US ON DISCORD
Online Participants