TP n°6. - BCPST1 du lycée Roland Garros

Download Report

Transcript TP n°6. - BCPST1 du lycée Roland Garros

Lycée Roland Garros
BCPST 1ère année
Mathématiques
2014 - 2015
TP INFO 6. Vérication des acquis
Les algorithmes suivants sont ultra-classiques et utilisent une seule boucle. Les fonctions
à écrire doivent tenir en deux ou trois lignes, pas plus. Vous devez y passer 5 minutes
par algorithme.
F
Algorithme 1 : recherche d'un maximum F
écrire une fonction maximum(L) qui calcule la valeur maximale d'une liste de nombres L.
F
Algorithme 2 : calcul d'une somme F
écrire une fonction somme(L) qui calcule la somme des valeurs d'une liste de nombres L.
Variante : calcul de la moyenne des valeurs de L
F
Algorithme 3 : recherche d'un élément dans une liste F
écrire une fonction trouve(x,L) qui renvoie la position de l'élément x dans la liste L. Si
x ne gure pas dans L il s'achera une erreur.
F
Algorithme 4 : nombre d'apparitions d'un élément dans une liste F
écrire une fonction apparitions(x,L) qui renvoie le nombre de fois que l'élément x gure
dans la liste L. Si x ne gure pas dans la fonction devra bien sûr renvoyer 0.
1
Exercices plus poussés
Les exercices qui suivent vous font résoudre des problèmes arithmétiques qui nécessitent
d'écrire des fonctions un peu plus élaborées qu'en page 1. Vous n'êtes pas obligé de les
faire tous dans l'ordre.
Exercice 1
Nombres palindromes
Un nombre palindrome est un nombre qui se lit de la même manière dans les deux sens.
Le plus grand palindrome qui soit un produit de deux nombres à 2 chires est :
9009 = 91 × 99
Pouvez-vous trouver le plus grand palindrome qui soit un produit de deux nombres à 3
chires ?
Exercice 2
Sommes de multiples
Pouvez-vous calculer la somme des nombres entre 1 et 1000 qui sont soit multiples de
5 soit multiples de 7 ?
Exercice 3
Multiples des premiers entiers
2520 est le plus petit nombre qui soit divisible par chacun des nombres entre 1 et 10.
Quel est le plus petit nombre qui soit divisible par chacun des nombres entre 1 et 16 ?
Exercice 4
Plus grands produits dans une liste
Dans la série suivante, les quatre chires adjacents qui ont le plus grand produit sont
9 × 9 × 8 × 9 = 5832. Dans cette même liste, trouvez les 13 chires adjacents qui ont le
plus grand produit (demandez-moi la série sur clé USB).
73167176531330624919225119674426574742355349194934
96983520312774506326239578318016984801869478851843
85861560789112949495459501737958331952853208805511
12540698747158523863050715693290963295227443043557
66896648950445244523161731856403098711121722383113
62229893423380308135336276614282806444486645238749
30358907296290491560440772390713810515859307960866
70172427121883998797908792274921901699720888093776
65727333001053367881220235421809751254540594752243
52584907711670556013604839586446706324415722155397
53697817977846174064955149290862569321978468622482
83972241375657056057490261407972968652414535100474
821663704844031 9989 0008895243450658541227588666881
16427171479924442928230863465674813919123162824586
17866458359124566529476545682848912883142607690042
24219022671055626321111109370544217506941658960408
07198403850962455444362981230987879927244284909188
84580156166097919133875499200524063689912560717606
2
05886116467109405077541002256983155200055935729725
71636269561882670428252483600823257530420752963450
Indication
liste.
: Commencez par créer une fonction qui calcule le produit des nombres d'une
Exercice 5
Se méer des conjectures ! (Dicile)
(16901764) a conjecturé que tout entier impair non premier peut s'écrire
comme la somme d'un entier premier et du double d'un carré.
C. Goldbach
9 = 7 + 2 × 12 ,
25 = 7 + 2 × 32 ,
15 = 7 + 2 × 22 ,
27 = 19 + 2 × 22 ,
21 = 3 + 2 × 32 ,
33 = 31 + 2 × 12
Cette conjecture s'est avérée fausse. Si Python avait existé à l'époque de Goldbach, il s'en
serait probablement aperçu très vite.
Quel est le premier nombre qui contredit cette conjecture ? Quel est le suivant ? Puis
les suivants ?
Exercice 6
Chercher le meilleur chemin (Dicile)
Voici un exemple de triangle de nombres. Pour chaque chemin du haut vers le bas on
considère la somme des nombres le long du chemin. Trouver la valeur maximale de cette
somme.
Données à demander sur clé USB (ne pas passer 20 minutes à recopier les chires).
75
95 64
17 47 82
18 35 87 10
20 04 82 47 65
19 01 23 75 03 34
88 02 77 73 07 63 67
99 65 04 28 06 16 70 92
41 41 26 56 83 40 80 70 33
41 48 72 33 47 32 37 16 94 29
53 71 44 65 25 91 52 97 51 14 13
70 11 33 28 77 73 17 78 39 68 17 57
91 71 52 38 17 14 91 43 58 50 27 29 48
63 66 04 68 89 53 67 30 73 16 69 87 40 31
04 62 98 27 23 09 70 98 73 93 38 53 60 04 23
: vous pouvez procéder en écrivant une fonction maximum(T), où T est une variable
contenant le triangle de nombres. Concrètement, T pourra par exemple être une liste de
listes de nombres.
Idée
3