TP1 : exercices d`oral type E3A PSI

publicité
Fermat, PSI* 2016-17, TP info
1
TP1 : exercices d'oral type E3A PSI
E3A PSI -épreuve de mathématiques et algorithmiques - modalités pratiques
• 1h de passage
• deux parties distinctes : une "standard" et une très orientée Python
• C'est une épreuve maths + algorithmique, avec parfois des enjeux algorithmiques qui demandent un
traitement n
Je ne donne ici que des demi-planches, avec les sujets Python
Déroulement souhaité pour le TP
• Sujet 1 (diviseurs propres) : résolution et commentaires à suivre en groupe SVP, 30mn environ
• Traitement du sujet 2 (matrices optimales) : on rééchit à la mise en route en commun, puis vous travaillez seuls
- 30mn env.
• Traitement du sujet 3 (codes creux) : résolution libre avec l'enseignant qui circule et un bilan nal.
• Pour les rapides il y a des sujets de rab...
Sujet 1 - Diviseurs propres d'un entier
Les diviseurs propres d'un nature n sont les naturels strictement inférieurs à n et qui divisent n. Ainsi la liste des
diviseurs propres de 100 est : 1,2,4,5,10,20,25,50.
a. Écrire une fonction LDP qui pour n ∈ N renvoie la liste des diviseurs propres de n.
b. Écrire une fonction SDP qui pour n ∈ N renvoie la somme des diviseurs propres de n (ex : pour n=100, cela doit
renvoyer 117).
c. Un nombre parfait est un nombre qui est égal à la somme de ses diviseurs propres. Écrire une fonction parfaits
qui pour K ∈ N recherche les nombres parfaits inférieurs à K . Elle achera au fur et à mesure "p est parfait".
d. Deux nombres sont dits amicaux lorsque chacun est égal à la somme des diviseurs propres de l'autre. Écrire une
fonction amicaux qui pour K ∈ N recherche la liste des nombres amicaux p, q tels que p < q ≤ K . Elle renverra la
liste des couples [p, q] trouvés.
e. Tracer les couples (p, q) de nombres amicaux inférieurs à 10 000.
Sujet 2 - Sous-matrices optimales
a. Fabriquer une matrice A carrée de taille 9 et une matrice B carrée de taille 2, toutes les deux à coecients tirés
aléatoirement entre 0 et 9.
b. Pour deux matrices M et N de taille quelconque écrire une fonction d'arguments N et M renvoyant True si N
est une sous-matrice de M , False sinon.
c. Ecrire une fonction permettant de trouver la sous-matrice de A la plus proche de B au sens des moindres carrés
(ie somme des carrés des composantes).
L'exercice adoptait un découpage pour cette dernière question que je trouve non judicieux. Autant rester dans la
logique de la question b...
Sujet 3 - Codes creux
Le code creux consiste à coder un vecteur sans les zéros qu'il comporte et qui constituent une information inutile
pour certains calculs.
Ce code comporte une première liste, formée des coordonnées non nulles et une seconde qui indique leur position.
Par exemple le vecteur [1, 2, 0, 5, 8, 0, 0, 0, 7] donne en code creux [[1, 2, 5, 8, 7], [0, 1, 3, 4, 8]].
2
Fermat, PSI* 2016-17, TP info
a. Écrire une procédure permettant de coder un vecteur en code creux, puis une autre permettant de le décoder
(énoncé rédigé ainsi, il y a une ambigüité... il est bond de la relever et de faire "au mieux").
b. Écrire une fonction réalisant le produit scalaire d'un scalaire et d'un vecteur en code creux.
c. Écrire une fonction réalisant le produit scalaire (canonique) de deux vecteurs en code creux.
d. Écrire une fonction réalisant la somme de deux vecteurs en code creux.
Sujet de rab 1 : Crible d'Eratosthène
On veut générer (sic !) la liste des nombres premiers.
a. Créer une liste L30 formée de 31 valeurs True.
b. Ecrire une fonction modifier(L,p) telle que si p = 0 le premier terme de L devient False, si p = 1 le second
terme de L devient False, et sinon, le k-ième terme de L devient False dès que k est un multiple de p autre que p. Faire
des tests.
c. En écrivant une fonction premiers(n), générer (sic !) la liste des nombres premiers jusqu'à la valeur n.
d. Dire si 823 417 est premier.
e. [Question perso rajoutée :] idem avec 1 006 549 441.
Sujet de rab 2 : Comptage des nombres de Josèphe
A la liste des entiers naturels, on retire un nombre sur deux, puis un sur trois, et ainsi de suite à l'inni :
(1, 2, 3, 4, 5, 6, 7, 8, . . . ) → (1, 3, 5, 7, 9, 11, 13, 15, . . . ) → (1, 3, 7, 9, 13, 15, 19, . . . ) → . . .
a. Écrire une fonction retirer qui étant donnés une liste L et un indice i enlève les éléments de la liste dont le
"rang" est un multiple de i (du moins est-ce la formulation du sujet : que lien faire entre le "rang" dont il est question
et l'indice... ?)
b. Indiquer comment obtenir tous les nombres de Flavius Josèphe entre 1 et 100.
c. Écrire une fonction FlaviusJosephe qui pour n ∈ N∗ renvoie tous les nombres de Flavius Josèphe inférieurs à n.
d. Écrire une fonction U qui pour n ∈ N∗ renvoie le nombre Un de nombres de Flavius Josèphe inférieurs à n.
e. Peut-on penser que la suite de terme général
4n
2
Un
converge ? Si oui conjecturer sa limite `.
f. Écrire une procédure donnant le premier n tel que | U4nn2 − `| ≤ 10−3 .
Téléchargement