• Aucun résultat trouvé

2 : Manipulations de listes

N/A
N/A
Protected

Academic year: 2022

Partager "2 : Manipulations de listes"

Copied!
2
0
0

Texte intégral

(1)

Lycée Louis-Le-Grand,Paris 2020/2021 MPSI 4– Informatique pour tous

N. Carré, A. Troesch

TP n

o

2 : Manipulations de listes

Le premier exercice est une révision du TP précédent, sans rapport avec le thème du TP actuel. À faire avant de passer aux exercices sur les listes.

Exercice 1 – Calculer F2020, où pFnq est la suite de Fibonacci définie par F0 “ 0, F1 “ 1 et pour tout n ě 0, Fn`2“Fn`1`Fn.

Exercice 2– Mutabilité et copies

On vérifie dans cet exercice les comportements relatifs à la mutabilité des listes étudiés en cours.

1. Créer une listeliste1, la copier dansliste2. Comparez les identifiants de liste1etliste2.

2. Modifiez un attribut deliste1. Quel est l’effet surliste2?

3. Effectuez une copie liste3 de liste1 par slicing. Quel est l’effet sur les adresses ? Modifier un attribut de liste1. Quel est l’effet surliste3?

4. Créer une listeliste4, dont l’attributliste4[0]est elle-même une liste. Créer une copieliste5 deliste4 par saucissonnage.

5. Comparez les adresses de liste4 et liste5. Comparer les adresses des attributs liste4[0] et liste5[0].

Modifier un des attributs de la listeliste4[0], et vérifier l’effet de cette modification surliste5.

6. Créer le tuple couple=([1,2],3). Peut-on modifier l’attribut d’indice 1 de couple? Modifier un des attributs decouple[0], et voir l’effet surcouple.

Ce n’est pas parce que le contenu de couplene peut pas être modifié en place que les contenus des attributs ne peuvent pas être modifiés, si ces attributs sont mutables.

Exercice 3–

1. Dans le module numpy.randomse trouve une fonction nomméerandint. Utilisez-la pour créer une liste de 100 entiers tirés au hasard entre0et 99.

2. Calculer le nombre d’éléments dev0,99wqui n’appartiennent pas à cette liste.

3. Recommencer cette expérience un grand nombre de fois et calculer la moyenne du nombre d’absents.

4. Comparer à la valeur théorique.

Exercice 4– In and Out Shuffle

Une méthode traditionnelle pour mélanger un paquet de cartes consiste à couper le paquet en deux puis à entrelacer ces deux parties. Lorsque les deux parties sont égales et que l’entrelacement se fait carte par carte, le mélange est dit parfait.

Il y a deux types de mélanges parfaits :

‚ leout shuffle lorsqu’on reconstitue le jeu en commençant par la première carte de la première moitié ;

‚ lein shuffle lorsqu’on reconstitue le jeu en commençant par la première carte de la seconde moitié.

On rappelle queli[a:b:p]extrait les termes d’une liste depenp, à partir de l’indiceajusqu’à l’indiceb´1. 1. Écrire une fonction out_shuffleeffectuant le mélangeout shuffle d’une liste contenant un nombre pair d’élé-

ments.

Pour un jeu de 52 cartes, combien de mélanges doit-on effectuer pour retrouver la liste dans son état initial ? 2. Mêmes questions avec le in shuffle.

1

(2)

Exercice 5– Le problème de Josephus

Josephus faisait partie d’un groupe de 41 rebelles juifs, à l’époque romaine. Cernés par les romains, le groupe décida d’un suicide collectif. Le déroulement devait être le suivant : le groupe se dispose en cercle, muni d’une origine (une personne numérotée1). Cette personne se suicide en premier, puis une personne sur trois (parmi les survivants) en faisant le tour du cercle autant de fois qu’il faut pour qu’il ne reste personne. Josephus et un de ses compagnons ne voulaient pas de ce suicide. Josephus calcula les places que lui et son compagnon devaient prendre sur le cercle pour être les 2 derniers rescapés (et donc faire à leur guise pour terminer).

Écrire un programme répondant au problème de Josephus. On traitera le cas plus général où le groupe est constitué de npersonnes, le nombre de survivants souhaités estket le pas de l’expérience estp(ainsi on procède par élimination depenpen commençant par la personne numérotée 1).

Exercice 6 – À l’aide du crible d’Ératosthène, consistant à barrer les multiples des nombres premiers au fur et à mesure qu’on les découvre, créer une liste constitué des entiers premiers inférieurs ou égaux à 1000.

Exercice 7–

1. Créer une listeentiersde tous les entiers de 2 à 100.

2. Définir par compréhension une liste diviseurscontituée des couples (n, diviseurs den), pour tout nélément de la listeentiers, les diviseurs denétant donnés sous forme d’une liste.

3. En déduire la listepremiersde tous les entiers premiers de2à 100. 4. Que pensez-vous de cette méthode par rapport au crible d’Ératosthène ?

2

Références

Documents relatifs

(Applaudisse- ments à gauche.) M. – L’adoption de l’amendement n° 3 rectifié fera tom- ber tous les autres ; il est donc na- turel que nous expliquions mainte- nant notre

Ecrire une fonction prenant en entrée une liste, et renvoyant la liste des sommes cumulées (depuis le premier terme). Ecrire une fonction prenant en entrée une

Le format des champs contenant des valeurs numériques, des dates, des numéros de téléphones peuvent ne pas être insérés correctement quand on utilise une base de données

OG2-2 : identifier les facteurs de risque d’une personne à partir d’un diagramme circulaire montant les différentes valeurs des facteurs de risque OG2-3 : donner des

Lorsqu’on modifie un attribut, on peut être amené à modifier son adresse, mais cette nouvelle adresse remplacera l’ancienne dans le bloc mémoire vers lequel pointent liste1

Celle-ci augmente avec la profondeur : alors que nous sommes soumis à une pression d'environ 1 bar à l'air libre au niveau de la mer (pression atmosphérique), le poids de

Des effets positifs, c’est-à-dire une réduction de la consom- mation de tabac, car l’accident a contri- bué à faire prendre conscience à l’indi- vidu le subissant de son

Une telle zone permet d'insérer un texte n'importe où dans le document PDF et peut même être dicté via un logiciel de dictée vocale comme Dragon, Dysvocal,…. On peut