[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
49 vues20 pages

Exercices Pythonv3

exercices_pythonv3

Transféré par

Michel Haddad
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
49 vues20 pages

Exercices Pythonv3

exercices_pythonv3

Transféré par

Michel Haddad
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 20

6 χ2J −1,α  ' 1 − α

TD Retour : table des matières m.a.j : 13 novembre 2017

Table des matières


1 De scratch vers python, réussir la migration 2


1.1 Activité : module turtle pour introduire python . . . . . . . . 2
1.2 Mise en place de l’activité . . . . . . . . . . . . . . . . . . . 4
1.3 Correction Python . . . . . . . . . . . . . . . . . . . . . . . 6
1.4 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2
Np̂j − Npj

2 Programmation et conjectures 11
Np j

2.1 Activité : conjectures . . . . . . . . . . . . . . . . . . . . . 11


2.2 Mise en place de l’activité . . . . . . . . . . . . . . . . . . . 13
2.3 Correction Python . . . . . . . . . . . . . . . . . . . . . . . 14
X

3 Tracé de courbes : introduction à matplotlib et numpy 16


j =1
J

3.1 Activité : Tracè de courbes . . . . . . . . . . . . . . . . . . 16


P

3.2 Mise en place de l’activité . . . . . . . . . . . . . . . . . . . 17


→ N (0, 1)

3.3 Correction Python . . . . . . . . . . . . . . . . . . . . . . . 19


X −µ
σ
dx = 1
−x 2 /2
e
+∞

−∞
Z
ϕ(x)dPX (x)

PBi (A)P(Bi )

1

X

i ∈I
p (1 − p)n−k
Z

P(A) =
E(ϕ(X )) =
n k
!

Maxime Fourny Académie de Franche-Comté 1/20


α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 1 De scratch vers python, réussir la migration Niveau : **

1.1 Activité : module turtle pour introduire python 6 Cristal 7 Cristal (2) Tracer le cristal ci-
Niveau : * Tracer le cristal ci-dessous. Les dessous. Les grands segments
grands segments mesurent 300 mesurent 300 pixels, les petits
Python est un langage de programmation dont la syntaxe est particulière-
pixels, les petits 150. 150.
2

ment simple, il est très puissant et très utilisé (le créateur de ce langage
travaillait chez Google et maintenant chez dropbox. La Nasa l’utilise aussi,
pN − j N

pour ne citer qu’eux !). Pour vous familiariser avec le langage Python,
jp
N

essayez ces quelques commandes directement dans l’interpréteur python


:

1 > > > from turtle import *


> > > forward(120)
X
1= j

> > > left(90)


> > > color("red")
P

)1 ,0( N →

> > > forward(80)


> > > reset() Analyser chacune de ces lignes et expliquer ce que fait
8 Hexagone 9 Octogone
chacune des commandes.
Tracer l’hexagone ci-dessous. Les Tracer le pentagone ci-dessous.
µ− X

6 côtés mesurent 100 pixels. Les 8 côtés mesurent 100 pixels.


σ

2 Carré 3 Carrés
Tracer la figure ci-dessous.
1 = xd 2/

Tracer un carré de 100 pixels de


côté. Chaque carré fait 100 pixels de
côté.
2
x−
e
∞+
∞−

Z
) x( XPd) x(ϕ
) iB(P)A( iBP
π2
1

10 (Double) décagone 11 Cercle


4 Carré ? 5 Carré ? (2) 1. Tracer le déacagone ci- Tracer le cercle ci-dessous.
Tracer la figure ci-dessous. Tracer la figure ci-dessous. dessous.
X
I∈ i

Le carré fait 100 pixels de côté. Le carré fait 100 pixels de côté.
k−n

Z
= )A(P

) p − 1( k p

= )) X(ϕ(E
!

2. Tracer un double décagone


n
k

Maxime Fourny Académie de Franche-Comté 2/20


6 χ2J −1,α  ' 1 − α
TD Retour : table des matières m.a.j : 13 novembre 2017

Niveau : *** Niveau : ****


12 Réaliser le dessin ci-dessous à l’aide du module turtle : 17 Ecrire un programme qui dessine un carré de coté 100 "plein"

18 Réaliser le dessin suivant :


2
Np̂j − Npj
Np j
X

j =1

13 Réaliser le dessin ci-dessous à l’aide du module turtle :


J

19 Dessiner la figure suivante :


P
→ N (0, 1)
X −µ

14 Réaliser le dessin ci-dessous à l’aide du module turtle :


σ
dx = 1

20 Créer un script qui dessinera une série de ces étoiles :


−x 2 /2
e
+∞

15 Réaliser le dessin ci-dessous à l’aide du module turtle :


−∞
Z
ϕ(x)dPX (x)

PBi (A)P(Bi )

1

X

i ∈I
p (1 − p)n−k
Z

P(A) =
E(ϕ(X )) =
n k

16 Modifier le code du programme précédent pour que le carré se


!

trouvant en ligne 4 colonne 8 soit rouge


k

Maxime Fourny Académie de Franche-Comté 3/20


α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 1.2 Mise en place de l’activité Je passe directement sur l’exercice 8 après l’exercice 5 lorsque la
totalité des élèves à réussi le 5
Objectifs
— Les exercices 8 à 11 imposent aux élèves une recherche de l’angle.
Cette activité est la première que je propose en Python au mois de sep- Certains trouvent directement la bonne formule mais la majorité
tembre depuis quelques années. procède par tatonnement et s’agace de devoir modifier toutes leurs
Elle a comme vocation de présenter la syntaxe python, la programmation lignes de code. J’en profite pour leur présenter l’affectation (angle =
séquentielle et textuelle. 37...).
2

Elle incite l’élève à demander de manière implicite la syntaxe de la boucle — L’exercice 11 voit les élèves faire un polygône à 360 côtés en
pN − j N

itérative et de l’instruction conditionnelle et montre l’intérêt de l’affectation. général. Certains me demandent si il n’y a pas moyen de faire
jp

Elle permet également une diversification en fonction des demandes des "répéter". Les autres s’agaçant de devoir faire un copier coller me
N

élèves : possibilité de présenter la syntaxe d’une fonction (sans para- permet de leur présenter alors la syntaxe de la boucle itérative.

mètres) ainsi que la syntaxe d’une fonction avec paramètres pour ceux qui Certains "petits malins" trouve l’instruction circle. Je leur demande
m’en font la demande. alors de voir si il n’en existe pas une pour faire un carré. Après
X
1= j

niveau quelques essais infructueux, ils se convainquent que ce n’est pas


J

le cas.
P

Je l’utilise pour tout niveau pour des élèves n’ayant jamais rencontrés — L’exercice 12 me permet de leur montrer la syntaxe d’une procé-
)1 ,0( N →

Python. dure/fonction (sans paramètre) afin de créer une telle fonction par
Il me faut en général 2H pour arriver à faire émerger les notions. nous même. Je présente la possibilité de mettre des arguments aux
Déroulement de l’activité élèves qui m’en font la demande.
— Les exercices 13 et 14 permettent de montrer l’intérêt d’une fonction
µ− X

Après une présentation succinte de python (moins de deux minutes) je les


σ

à paramètre.
laisse aller à leur rythme. C’est l’occasion de revenir sur les exercices demandant de tra-
1 = xd 2/

— Les exercices 2 et 3 leur permet de rentrer dans le logiciel et de cer des polygônes et de montrer que le carré, le décagone etc...
prendre en main python. Ils sont tapés directement, instruction par Peuvent s’hériter de la fonction suivante :
instruction, dans l’interpréteur. A ce stade, je ne leur montre pas
def polygone(n,cote) :
2

encore le bloc note.


x−

# n represente ne nombre de cote


— L’exercice 5 me permet d’agacer la plupart des élèves qui se voient
e

# cote est la longueur du cote


∞+

obligés de "resetter" car ils ont tendance à trouver la longueur de


∞−

angle = 360/n
la diagonale par tatonnement avant d’arriver à mobiliser Pythagore. for k in range(n) :
Z
) x( XPd) x(ϕ

forward(cote)
) iB(P)A( iBP

C’est l’occasion de leur présenter le bloc-note et la programmation


π2

left(angle)
1

textuelle ainsi que l’intérêt d’écrire son programme dans un fichier


texte avant d’executer. def carre(cote) :


On peut observer chez certains élèves des stratégies de contourne- polygone(4,cote)
ment consistant à changer la couleur en "white" pour effacer. Cela def decagone(cote) :
X
I∈ i

les empeche d’avoir à resetter. polygone(10,cote)


k−n

C’est également l’occasion de revenir sur l’exercice 4 et de leur


Z
= )A(P

L’exercice 14 permet également d’introduire l’utilisation du k dans la


) p − 1( k p

montrer qu’il est identique au 2 en rajoutant une seule instruction


= )) X(ϕ(E

boucle de répétition.
au début.
— L’exercice 15 introduit la double boucle pour
— Les exercices 6 et 7 me servent à faire "attendre" les élèves perfor-
— L’exercice 16 permet d’introduire la syntaxe d’une instruction condi-
!

mants.
n
k

tionnelle.
— Les exercices suivants me permettent de donner des exercices un

Maxime Fourny Académie de Franche-Comté 4/20


Z
E(ϕ(X )) = ϕ(x)dPX (x)
X −µ
! Z +∞ → N (0, 1)
n k 1 −x 2 /2 σ
p (1 − p)n−k √ e dx = 1  
k 2π −∞ J 2
X
X Np̂j − Npj
P(A) = PBi (A)P(Bi ) P 6 χ2J −1,α  ' 1 − α
i ∈I
Np j
j =1
TD

Maxime Fourny
peu défi à certains élèves performants.
Retour : table des matières

Académie de Franche-Comté
5/20
m.a.j : 13 novembre 2017
α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 1.3 Correction Python Correction exercice 12


Correction exercice 2 Dans un premier temps on obtient généralement ça :
color("red")
forward(100) for k in range(10) :
left(90) forward(100)
forward(100) left(90)
left(90) forward(100)
2

forward(100) left(90)
left(90)
pN − j N

forward(100)
forward(100) left(90)
jp

left(90)
N

forward(100)
left(90)
Correction exercice 4 up()

forward(15+100)
left(45) down()
X
1= j

forward(100)
J

left(90) Après presentation des procdures, on obtient ça :


P

forward(100)
)1 ,0( N →

left(90) forward(100)
forward(100) left(90)
left(90) forward(100)
forward(100) left(90)
left(90) forward(100)
µ− X

left(90)
σ

Correction exercices polygones forward(100)


left(90)
1 = xd 2/

Les élèves partent en général d’une syntaxe comme celle ci pour l’hexa-
gone color("red")
for k in range(10) :
forward(100) carre()
2

left(60) up()
x−

forward(100) forward(15+100)
e

left(60)
∞+

down()
∞−

forward(100)
left(60) Voir :
Z
) x( XPd) x(ϕ
) iB(P)A( iBP

forward(100)
π2

left(60) def carre() :


1

forward(100) for k in range(4) :


left(60) forward(100)
forward(100) left(90)
left(60)
color("red")
X
I∈ i

Mon objectif est d’arriver à les faire arriver à quelque chose comme cela for k in range(10) :
k−n

carre()
Z

(double décagone ici) :


= )A(P

) p − 1( k p

up()
= )) X(ϕ(E

angle = 360/20 forward(15+100)


longueur = 50 down()
for k in range(20) :
Correction exercice 13
!

forward(longueur)
n
k

left(angle)
def carre(cote) :

Maxime Fourny Académie de Franche-Comté 6/20


6 χ2J −1,α  ' 1 − α
TD Retour : table des matières m.a.j : 13 novembre 2017

for k in range(4) : right(90)



forward(cote) forward(30+5)
left(90) left(90)
down()
for k in range(5) :
carre(100)
up()
forward(100+15)
2

down()
carre(50)
Np̂j − Npj

up()
Np j

forward(50+15)
down()

Correction exercice 14
X

j =1

for k in range(1,10) :
J

carre(10*k)

P

up()
→ N (0, 1)

forward(10*k+15)
down()

Correction exercice 15
X −µ

for i in range(10) :
σ

for j in range(10) :
carre(20)
dx = 1

up()
forward(20+5)
down()
−x 2 /2

up()
backward(250)
right(90)
e
+∞

forward(20+5)
−∞

left(90)
Z

down()
ϕ(x)dPX (x)

PBi (A)P(Bi )

Correction exercice 16
1

for i in range(10) :
for j in range(10) :
if i == 3 and j == 7 :
X

i ∈I

color("red")
p (1 − p)n−k

else :
Z

P(A) =

color("black")
E(ϕ(X )) =

carre(30)
up()
forward(30+5)
n k

down()
!

up()
backward(350)

Maxime Fourny Académie de Franche-Comté 7/20


α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 1.4 Motivations Bilan : Il faut donc un langage de programmation interprétés, textuel,


fonctionnel , simple d’usage et largement répandus fonctionnant
1.4.1 Pourquoi ces deux logiciels : paradigmes informatiques dans une diversité d’environnements.
Les élèves vont être amenés à utiliser plusieurs logiciels de programmation Comme on peut le voir, Les programmes du collège et du lycée ont certes
à partir de la cinquième. Même si aucun logiciel n’est imposé, une lecture beaucoup de points communs dans l’enseignement de l’informatique, mais
rapide des programmes nous incite à utiliser Scratch au collège et python également des divergences.
2

au lycée. En effet, outre leur utilisation au niveau mondial, ils répondent Les élèves en arrivant au lycée vont donc être amenés à devoir apprendre
particulièrement bien aux attendus du programme comme on le voit ci- un nouveau logiciel. Cet apprentissage ne peut se faire qu’en utilisant ce
pN − j N

dessous : qu’ils ont déjà rencontrés puis construire leur apprentissage en ciblant
jp
N

les difficultés lié à ce changement de facons de faire, ce changement de


1. Lecture du programme du collège :
paradigme.

Écrire un programme dans lequel des actions sont déclenchées par


des événements extérieurs. Définition (Paradigme de programmation).
X
1= j

Programmer des scripts se déroulant en parallèle.


J

— Notions d’algorithme et de programme. Un paradigme en général est une vision du monde qui oriente notre
P

— Notion de variable informatique. manière de penser.


)1 ,0( N →

— Déclenchement d’une action par un évènement, séquences d’ins-


tructions, boucles, instructions conditionnelles. Un paradigme de programmation est un style fondamental de pro-
2. Lecture du programme de seconde : grammation informatique qui traite de la manière dont les solutions
µ− X

aux problèmes doivent être formulées dans un langage de program-


Algorithmique et programmation
σ

mation
La démarche algorithmique est, depuis les origines, une composante
1 = xd 2/

essentielle de l’activité mathématique. Au cycle 4, en mathématiques


et en technologie, les élèves ont appris à écrire, mettre au point
Scratch et Python sont tous les deux des logiciels multi-paradigmes. Je
et exécuter un programme simple. Ce qui est proposé dans ce
vais ici m’intéresser à leurs paradigmes principaux et voir où sont leurs
2
x−

programme est une consolidation des acquis du cycle 4 autour de


points communs mais aussi leurs différences.
e

deux idées essentielles :


∞+

Scracth :
∞−

— la notion de fonction d’une part, et


— la programmation comme production d’un texte dans un langage — Sur la forme : Programmation graphique/visuelle et dynamique
Z
) x( XPd) x(ϕ
) iB(P)A( iBP

— Sur le fond :
π2

informatique d’autre part.


1

programmation impérative

Dans le cadre de cette activité, les élèves sont entraînés :


— à décrire des algorithmes en langage naturel ou dans un langage programmation procédurale
de programmation ; programmation évenementielle facilement accessible
— à en réaliser quelques-uns à l’aide d’un programme simple écrit programmation parallèle facilement accessible
X
I∈ i

dans un langage de programmation textuel ; Python :


k−n

— à interpréter des algorithmes plus complexes. Un langage de


= )A(P

— Sur la forme : Programmation textuelle non dynamique


) p − 1( k p

= )) X(ϕ(E

programmation simple d’usage est nécessaire pour l’écriture des — Sur le fond :
programmes. Le choix du langage se fera parmi les langages Programmation impérative/procédurale
interprétés, concis, largement répandus, et pouvant fonctionner programmation fonctionnelle
!

dans une diversité d’environnements. programmation événementielle possible mais pas de prime abord
n
k

Programmation parallèle possible mais pas de prime abord

Maxime Fourny Académie de Franche-Comté 8/20


6 χ2J −1,α  ' 1 − α
TD Retour : table des matières m.a.j : 13 novembre 2017

1.4.2 Savoir d’où l’on vient . . . Une séquence d’instructions où une procédure peut être déclenchée

par un événement (appui d’une touche, clic de souris, son reçu par
Définition (Paradigme de Scracth). le micro, ...)
La programmation évènementielle permet de prévoir de l’interactivité
Scratch est un langage de programmation visuelle et dynamique. avec l’utilisateur en cours d’exécution du programme.
Au premier contact l’élève est amené à faire de la programmation
programmation parallèle :
impérative puis de la programmation procédurale.
2

Il permet également de pratiquer la programmation évènementielle La programmation parallèle consiste à exécuter en même temps plu-
Np̂j − Npj

et parallèle assez facilement. sieurs instructions (ce que ne permet pas la programmation séquen-
tielle). Cela est possible ici gràce à la programmation événementielle
Np j

Il se veut ludique et permet de travailler les concepts clé de la


programmation par la création d’histoires interactives, de dessins qui permet de lancer plusieurs instructions différentes pour un même
animés, de jeux, de compositions musicales... événement.
Pour les puristes, c’est une surcouche du langage de programma- Scratch utilisable en ligne est constitué de multiples briques permettant
d’exécuter une action précise. Il existe 10 catégories de briques différentes
X

tion Smalltalk fondée sur Squeak.


j =1
J

(classées par couleurs)


P
→ N (0, 1)

— Mouvement — Capteurs — Données


Programmation graphique ou visuelle : — Contrôle — Sons — Ajouter blocs
Les programmes sont écrits par assemblage d’éléments graphiques — Événements — Opérateurs
ou briques. — Apparence — Stylo
X −µ
σ

Sous Scratch les concepts de base de la programmation tels que les Relecture du programme du collège :
boucles, les tests, les affectations de variables sont mises en oeuvre
dx = 1

Écrire un programme dans lequel des actions (procédures) sont déclen-


de manière visuelle. chées par des événements extérieurs (événementielle)
Programmation dynamique : Programmer des scripts se déroulant en parallèle.
−x 2 /2

il est possible de modifier le code du programme en cours d’exécu- — Notions d’algorithme et de programme.
tion. — Notion de variable informatique.
e

— Déclenchement d’une action par un évènement, séquences d’ins-


+∞

Programmation impérative/séquentielle :
−∞

tructions, boucles, instructions conditionnelles.


Un programme écrit en mode impératif ou séquentielle est une suite
Z
ϕ(x)dPX (x)

On voit donc que Scratch est particulièrement bien indiqué pour répondre
PBi (A)P(Bi )

d’instructions exécutées les unes après les autres. Un seul instruction aux attendus du programme de collège.
1

étant exécutée à la fois.


Programmation procédurale : 1.4.3 . . . Pour savoir où l’on va !
La programmation procédurale est une amélioration de la program-
Définition (Paradigme de Python).
X

mation séquentiellle, elle en reprend le principe mais utilise les pro-


i ∈I
p (1 − p)n−k

cédures.
Z

P(A) =

Une procédure est une encapsulation d’une séquence d’instructions. Python est un langage de programmation objet, multi-paradigme et
E(ϕ(X )) =

L’intérêt est qu’elle peut être réutilisée à différents emplacements multiplateformes. Il favorise la programmation impérative, fonction-
dans le programme sans avoir à retaper en mode "copier-coller" une nelle et orientée objet. Il est doté d’un typage dynamique fort, Il est
n k

similaire à smalltalk (continuité implicite avec Scratch)


!

séquence d’instructions.
k

programmation événementielle :

Maxime Fourny Académie de Franche-Comté 9/20


α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 On voit donc que Python reprend la plupart des paradigmes de Scracth :


— programmation impérative/séquentielle
— programmation procédurale (car fonctionnelle)
La programmation événementielle et parallèle est également possible
(module tkinter ou autre) mais ne constitue pas un attendu du programme
— Programmation séquentielle
de seconde et du lycée en mathématiques.
Python se différencie toutefois de Scracth sur les points suivants :
2

— Sur la forme, la programmation est textuelle


pN − j N

— Sur le fond, il permet la programmation fonctionnelle


jp
N

Programmation textuelle :
— Programmation visuelle
L’algorithme s’écrit dans un bloc note. Une ligne constitue générale-

ment une seule instruction.


X

Cela rajoute une difficulté en plus, il n’y a pas d’erreurs possibles


1= j

dans la syntaxe. Nécessité d’une grande rigueur.


P

Programmation fonctionnelle :
)1 ,0( N →

— Paradigme (programmation)
Une fonction ressemble à une procédure à la différence fondamen-
tale qu’elle permet de renvoyer une valeur : nombre, chaine de
caractères, liste...
µ− X

Ainsi cela se rapproche davantage d’une fonction mathématiques.


σ

— La programmation pour les non-programmeurs (article du monde)


1 = xd 2/

1.4.4 Quelques sources


— Programmation impérative
2
x−
e
∞+
∞−

1.4.5 Le mot de la fin


) x( XPd) x(ϕ
) iB(P)A( iBP
π2

— Programmation procédurale
1

Bien sûr il ne faut pas formaliser ces différents paradigmes avec les élèves,

mais il me semble qu’il faut, en tant qu’enseignant, en avoir conscience


pour
1. Donner du sens à nos activités en faisant le lien avec ce qu’ils ont
X
I∈ i

déjà rencontrés (ou pas !)


k−n

— Programmation fonctionnelle
Z
= )A(P

) p − 1( k p

2. Nous aider à comprendre certaines difficultés que rencontrent nos


= )) X(ϕ(E

élèves.
3. Faire prendre conscience à nos élèves des ces différentes notions
!

de manière progressive et différenciée.


n
k

— Programmation événementielle

Maxime Fourny Académie de Franche-Comté 10/20


6 χ2J −1,α  ' 1 − α
TD Retour : table des matières m.a.j : 13 novembre 2017

2 Programmation et conjectures 2. Que constate-t-on ? Essayer avec d’autres entiers au départ.


Conjecture de Syracuse : La conjecture de Syracuse, encore appelée


2.1 Activité : conjectures
conjecture de Collatz, conjecture d’Ulam, conjecture tchèque ou problème
Préliminaires 3x + 1, est l’hypothèse mathématique selon laquelle la suite de Syracuse
de n’importe quel entier strictement positif atteint 1.
1 % et //
Cette conjecture n’a pour le moment pas été démontré (ni infirmé).
2

1. En mode interpréteur tester la commande suivante :


Np̂j − Npj

> > > 13%7 Programmation de la suite


Np j

2. En effectuant d’autres essais, déterminer à quoi sert % en python. 4 Terme suivant


3. De la mème manière, déterminer à quoi sert // si on le met à la place 1. Quel est le nombre qui suit 27 respectivement 32 dans la suite de
de %. Syracuse ?
X

2. Ecrire une fonction qui prenant un nombre entier en paramètre,


j =1

2 divisibilité
J

renvoie le nombre qui le suit dans la suite de Syracuse.


P

1. Écrire un programme qui permet de dire si un nombre est divisible


→ N (0, 1)

par 13. 5 Trajectoire de Syracuse(seconde)


2. Écrire une fonction qui permet de dire si un nombre donné en para- 1. Etant donné un nombre entier n passé en paramètre, écrire une
mètre est pair. fonction qui renvoie le 100ème terme de la suite de Syracuse de ce
X −µ

nombre.
3. Justifier pourquoi cette fonction, pourtant utile, n’est pas pertinente.
σ

2. Modifier le programme précédent pour avoir accès au rang de la


4. Écrire une fonction permettant de tester si un entier est divisible par
dx = 1

suite de syracuse que l’on souhaite.


un autre entier.
3. Etant donné un nombre entier n passé en paramètre, écrire une
Conjecture de Syracuse fonction qui calcule les termes de la suite jusqu’à ce que l’on tombe
−x 2 /2

sur 1.
e

Définition (Suite de Syracuse (source : wikipedia)). Expliquer le danger d’une telle fonction ?
+∞

−∞

4. Etant donné un nombre entier n passé en paramètre, écrire une


En mathématiques, on appelle suite de Syracuse une suite d’entiers
Z
ϕ(x)dPX (x)

fonction qui indique si la conjecture de Syracuse est vérifiée pour ce


PBi (A)P(Bi )

naturels définie de la manière suivante : nombre.


1

On part d’un nombre entier plus grand que zéro ; s’il est pair, on
le divise par 2 ; s’il est impair, on le multiplie par 3 et on ajoute 1. 5. Démontrer la suite de Syracuse pour les nombres de 1 à 10 000.
En répétant l’opération, on obtient une suite d’entiers positifs dont Peux-t-on démontrer que la conjecture de Syracuse est vraie pour
chacun ne dépend que de son prédécesseur. tous les nombres de cette manière ?
X

i ∈I
p (1 − p)n−k

6 Trajectoire de Syracuse(première - terminale)


Z

P(A) =
E(ϕ(X )) =

1. Etant donné un nombre entier n passé en paramètre, écrire une


3 trajectoire fonction qui renvoie les 100 premiers termes de la suite de Syracuse
n k

1. Donner les premiers termes de la suite de syracuse si l’on part de 14. de ce nombre.
!

Cette suite de nombre est appelée la suite de Syracuse du nombre


k

2. Modifier le programme précédent pour avoir accès a une trajectoire


14. Suite dont on vient d’en calculer une trajectoire. de longueur paramètrable.

Maxime Fourny Académie de Franche-Comté 11/20


α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 3. Etant donné un nombre entier n passé en paramètre, écrire une 1. Parmi les nombres entiers de 1 à 10 000 quel est celui qui a le temps
fonction qui calcule les termes de la suite jusqu’à ce que l’on tombe de vol le plus élevé. Que vaut-il ?
sur 1. 2. Parmi les nombres entiers de 1 à 10 000 quel est celui qui a le temps
Expliquer le danger d’une telle fonction ? de vol en altitude le plus élevé. Que vaut-il ?
4. Etant donné un nombre entier n passé en paramètre, écrire une 3. Parmi les nombres entiers de 1 à 10 000 quel est celui qui a l’altitude
fonction qui indique si la conjecture de Syracuse est vérifiée pour ce maximale la plus élevé. Que vaut-elle ?
2

nombre.
Défi : autres conjectures célèbres
pN − j N

5. Démontrer la suite de Syracuse pour les nombres de 1 à 10 000.


jp

Peux-t-on démontrer que la conjecture de Syracuse est vraie pour


N

tous les nombres de cette manière ? Théorème (Théorème de Fermat-Wiles).


A l’heure d’aujourd’hui cette conjecture est démontrée pour tous les entiers Il n’existe pas de nombres entiers non nuls x , y et z tels que :
X

plus petit que 1, 25 × 262


1= j

7 le temps de vol xn + yn = zn
P

le temps de vol d’un entier est la longueur de la trajectoire qui permet


)1 ,0( N →

dès que n est un entier strictement supérieur à 2.


d’arriver à 1 pour la première fois.
1. Quel est le temps de vol de 14.
2. Programmer une fonction qui renvoie le temps de vol d’un entier
µ− X

Remarque. Si n = 2, on en connait une infinité (32 + 42 = 52 ) appelés


σ

passé en paramètre. triplet phytagoricien.


1 = xd 2/

8 Le temps de vol en altitude Cette conjecture appelée conjecture de Fermat a été démontré par Wiles il
le temps de vol en altitude d’un entier est la longueur de la trajectoire où y a une vingtaine d’année, soit 4 siècles après Fermat. Cette démonstration
tous les nombres sont plus grand que l’entier de départ. ne tient pas dans la marge.
2

Cette conjecture avait été généralisé par Euler sous la formulation suivante
x−

1. Quel est le temps de vol en altitude de 14, 27, 33 ?


e

:
∞+

2. Quel est le temps de vol d’un nombre pair ?


∞−

Conjecture d’Euler pour n = 4 Il n’existe pas de nombres entiers non


3. Programmer une fonction qui renvoie le temps de vol en altitude d’un nuls x , y et z et t tels que :
Z
) x( XPd) x(ϕ
) iB(P)A( iBP
π2

entier passé en paramètre.


1

x4 + y 4 + z4 = t4

9 L’altitude maximale
l’altitude maximale d’un entier est la valeur maximale prise par la suite de 11 En partant du principe que t > x > y > z , démontrer que cette
Syracuse de cet entier conjecture est fausse.
X
I∈ i

k−n

1. Quel est l’altitude maximale de 14, 27, 33 ?


Z

Remarque. Euler a énoncé cette conjecture en 1772. Le premier contre


= )A(P

) p − 1( k p

= )) X(ϕ(E

2. Programmer une fonction qui renvoie l’altitude maximale d’un entier exemple qui a infirmé cette conjecture a été donné en 1966
passé en paramètre.
Pour aller plus loin sur Syracuse
!
n
k

10 Le plus grand ?

Maxime Fourny Académie de Franche-Comté 12/20


6 χ2J −1,α  ' 1 − α
TD Retour : table des matières m.a.j : 13 novembre 2017

2.2 Mise en place de l’activité — L’exercice 11 sert à illustrer que l’on peut infirmer une conjecture.

Ici il est bien sur inconcevable de demander cela à tous les élèves.
Objectifs
Il est tout à fait possible d’améliorer la vitesse du programme en
Cette activité à pour but de faire travailler la syntaxe fonctionnelle aux améliorant les majorations. Il faut toutefois plusieurs heures pour
élèves. Elle permet également de travailler l’instruction conditionnelle la qu’il réponde :
boucle itérative et la boucle conditionnelle.
Elle n’est pas dénué d’intérêt mathématiques car elle traite les suites mais 958004 + 2175194 + 4145604 = 4224814
2

également la notion de conjecture encore d’actualité. Elle permet d’illustrer


Np̂j − Npj

le fait qu’un ordinateur peut aider à démontrer (conjecture d’Euler).


Np j

niveau
Elle peut se traiter en classe de seconde (plutôt vers la fin de l’année) mais
également en première et terminale. Il faut plusieurs heures si l’on veut la
X

j =1

traiter intégralement.
J

Déroulement de l’activité

P
→ N (0, 1)

— L’exercice 1 permet simplement d’introduire deux nouvelles opéra-


tions en informatique.
— L’exercice 2 permet de reparler de la syntaxe du if et d’une fonction
à paramètre même si elle n’est pas pertinente car il suffit de mettre
X −µ
σ

nombre%2 dans les programmes pour avoir la réponse sur la parité.


— L’exercice 3 fait manipuler à la main la suite de Suracuse.
dx = 1

— L’exercice 4 permet de créer une fonction qui sera réutilisée par la


suite.
−x 2 /2

— L’exercice 5 ou 6 constitue le gros de cet activité. Une des difficultés


étant pour un élève de concevoir que l’on garde le même nom de
e

variable (nombre) qui contiendra successivement tous les valeurs


+∞

−∞

prises par la suite.


L’exercice 6 voit l’utilisation d’une liste. (peut être dans les futurs
Z
ϕ(x)dPX (x)

PBi (A)P(Bi )

programmes de première ? ? ? ?)
1

— L’exercice 7 est un rafinnement de l’exercice consistant à s’arrêter


dès que l’on obtient 1. Il travaille le rajout d’une variable compteur.
— L’exercice 8 qui consiste à modifier légèrement le script de l’exercice
7 impose de penser à sauvegarder la valeur de départ.
X

i ∈I

— L’exercice 9 consiste pour moi en un classique, celui de trouver le


p (1 − p)n−k
Z

maximum dans une suite de nombre.


P(A) =
E(ϕ(X )) =

— L’exercice 10 est à donner à des élèves qui sont en avance. Pour


les élèves vraiment motiver, on peut leur faire remarque que c’est
n k

la même fonction à utiliser si l’on accepte que l’on peut passer une
!

fonction en paramètre d’une autre fonction !


k

Maxime Fourny Académie de Franche-Comté 13/20


α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 2.3 Correction Python Comme on ne sait pas si la conjecture est vraie, il est possible que le pro-
gramme ne termine jamais. En tout état de cause, même si le programme
Correction exercice 2
ne termine pas, on ne peut pas savoir si l’on a un contre exemple ou si
def pair(n) :
c’est qu’il reste à des valeurs supérieurs à 1.
if n%2 == 0 : def preuve_partielle(nombre) :
return True for k in range(nombre) :
else : retour_un(nombre)
2

return False return "OK"


pN − j N

#Si le programme affiche OK c’est qu’il a boucle pour tous les


Cette fonction n’est par pertinente car il suffit de faire nombre%2 pour nombres.
jp

savoir si un nombre est pair.


N

Correction exercice 3 Correction exercice 7


14, 7, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1, 4, 2. . . def temps_vol(nombre) :
X

compteur = 0
1= j

Correction exercice 4
J

while nombre !=1 :


P

nombre = syracuse(nombre)
Après 27 : 82 et après 32 : 16. compteur = compteur +1
)1 ,0( N →

def syracuse(nombre) : return compteur


if nombre%2==0 :
return nombre//2 Correction exercice 8
else :
µ− X

return 3*nombre +1 def vol_altitude(nombre) :


σ

compteur = 0
Correction exercice 5 et 6
1 = xd 2/

depart = nombre
while nombre>=depart :
def trajectoire_seconde(nombre,longueur) : nombre = syracuse(nombre)
for k in range(longueur) : compteur = compteur +1
return compteur
2

nombre = syracuse(nombre)
x−

return nombre
e

Correction exercice 9
∞+
∞−

L’exercice 6 utilise les listes.


Z

def altitude_maximale(nombre) :
) x( XPd) x(ϕ

def trajectoire(nombre,longueur) :
) iB(P)A( iBP
π2

traj = [nombre] maxi = nombre


1

while nombre !=1 :


for k in range(longueur) :
nombre = syracuse(nombre) nombre = syracuse(nombre)
traj.append(nombre) if nombre > maxi :
return traj maxi = nombre
return maxi
X
I∈ i

def retour_un(nombre) :
k−n

Correction exercice 10
Z

"""Indique si la conjecture de syracuse est bonne pour nombre


= )A(P

) p − 1( k p

"""
= )) X(ϕ(E

while nombre !=1 : def max_temps_vol(nombre) :


nombre = syracuse(nombre) maxi =0
return "OK" n_max = 0
!

for k in range(1,nombre) :
n
k

valeur = temps_vol(k)
if valeur >maxi :

Maxime Fourny Académie de Franche-Comté 14/20


6 χ2J −1,α  ' 1 − α
TD Retour : table des matières m.a.j : 13 novembre 2017

maxi = valeur

n_max = k
return k,maxi

def max_vol_altitude(nombre) :
maxi =0
n_max = 0
for k in range(2,nombre) :
2

valeur = vol_altitude(k)
Np̂j − Npj

if valeur >maxi :
maxi = valeur
Np j

n_max = k
return k,maxi

def max_altitude_maximale(nombre) :
maxi =0
X

j =1

n_max = 0
J

for k in range(1,nombre) :

P

valeur = altitude_maximale(k)
→ N (0, 1)

if valeur >maxi :
maxi = valeur
n_max = k
return k,maxi
X −µ

def max_fonction(nombre,fonction) :
σ

maxi =0
dx = 1

n_max = 0
for k in range(2,nombre) :
valeur = fonction(k)
if valeur >maxi :
−x 2 /2

maxi = valeur
n_max = k
e

return k,maxi
+∞

−∞

Correction exercice 11
Z
ϕ(x)dPX (x)

PBi (A)P(Bi )

1

def conjecture_Euler() :
t = 1
while 1 :
for x in range(1,t+1) :
for y in range(1,t+1) :
X

i ∈I

for z in range(1,t+1) :
p (1 − p)n−k

if x**4+y**4+z**4 == t**4 :
Z

P(A) =

return (x,y,z,t)
E(ϕ(X )) =
n k
!

Maxime Fourny Académie de Franche-Comté 15/20


α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 3 Tracé de courbes : introduction à matplotlib Pendant que Averel est encore en train de manger avec Ma, Joe, Jack et
William se trouve dans un champ et ne bouge pas. (ils forment donc un
et numpy triangle).
Rantanplan se trouve n’importe où dans le même champ. (dans le tri-
3.1 Activité : Tracè de courbes angle ou en dehors, peu importe). Simultanément, les trois frères Dalton
1 Calculs appellent Rantanplan. De manière équiprobable, le célèbre chien choisit
un des trois lascars au hasard et se dirige vers lui. Arrivé à la moitié du
2

1. Effecteur les deux calculs suivants : chemin, il fait un trou et comme il a une mémoire de poisson rouge, il
pN − j N

s’arrête car il ne sait plus où aller.


jp

2 + 157 ∗ 0.05 3.11 + 2.08 Les trois frères l’appellent simultanément à nouveau, et à nouveau Ran-
N

tanplan choisit un des trois loustics au hasard et se dirige vers lui. Arrivé à

2. Effectuer ces calculs avec python la moitié du chemin il fait un trou et comme bla bla bla poisson rouge bla
bla bla,
X
1= j

2 module matplotlib.pyplot il s’arrète... et ainsi de suite un très grand nombre de fois.


J

Quelle figure les trous de Rantanplan réalise (vu du ciel) ?


P

1. Que fait le programme suivant :


)1 ,0( N →

6 Averel qui a fini de manger la tarte de Ma (ainsi que la part de ses


from matplotlib.pyplot import *
frères) décide, les voyant s’amuser, de les rejoindre. Quelle figure les trous
x = 1 de Rantanplan réalise alors (vu du ciel) ?
µ− X

y = 2 En première et termninale : Analyse numérique


σ

7 Recherche de racines
plot(x,y,"o")
1 = xd 2/

show() 1. Après avoir tracé la courbe représentative sur l’intervalle [−1; 4] de


la fonction f (x ) = 0.5x 2 + x − 1, conjecturer le nombre de solutions
3 Tracé de courbes à l’équation f (x ) = 0.
2
x−

1. Tracer la courbe représentative de la fonction f (x ) = 2x 2 − 2x + 3 2. Écrire un algorithme permettant d’encadrer la racine de la fonction f
e

par balayage à 10−3 près.


∞+

sur [−1 000; 1 000]


∞−

2. Tracer la courbe représentative de la fonction f (x ) = 2x 2 − 2x + 3 3. Écrire un algorithme permettant d’encadrer la racine de la fonction f
Z
) x( XPd) x(ϕ
) iB(P)A( iBP

par dichotomie à 10−3 près.


π2

sur [−10 000; 10 000]


1

3. Tracer la courbe représentative de la fonction f (x ) = 2x 2 − 2x + 3 Défi : Faire planter la machine


sur [−1 000 000; 1 000 000]
8
4. Tracer la courbe représentative de la fonction f (x ) = 2x 2 − 2x + 3
1. Calculer
X

sur [−4; 4]
I∈ i

n 1
k−n

X 1 X 1
Z

et
= )A(P

) p − 1( k p

4 Tracé d’une autre courbe k k


= )) X(ϕ(E

k =1 k =n
2x − 1
Tracer la courbe représentative de la fonction g (x ) = sur [−4; 4] P1000
x +3 2. Calculer k =1 x avec x = 0.5, x = 0.25 et x = 0.1
!

Rantanplan 3. Programmer la suite de Muller (on admettre qu’elle converge vers 6).
n
k

5 Rantanplan

Maxime Fourny Académie de Franche-Comté 16/20


6 χ2J −1,α  ' 1 − α
TD Retour : table des matières m.a.j : 13 novembre 2017

3.2 Mise en place de l’activité copier coller de l’exerecice précédent et modifier la fonction.

Voici le premier programme proposé par un élève n’ayant pas re-
Objectifs
marqué à priori la valeur interdite :
Cette activité peut être proposé relativement tôt en classe de seconde. def ex4_v1() :
Elle introduit deux modules fondamentals : matplotlib.pyplot pour le tracé for x in arange(-4,4,0.01) :
de courbes et la géométrie cartésienne ainsi que numpy pour du calcul y = (2*x-1)/(x+3)
plot(x,y,"o")
scientifique plus élaboré.
2

show()
Elle ne cache pas le fait que python ne peut que calculer en valeur appro-
Np̂j − Npj

chée si l’on ne fait pas attention.


Np j

Déroulement de l’activité
— L’exercice 1 sert à illustrer que python ne calcule qu’en valeur
approcchée avec les nombres décimaux.
X

j =1

Lorsqu’un élève me soutient qu’un ordinateur ou Python est plus


J

intelligent que lui, je lui propose de faire ces deux calculs, puis de

P

demander à Python de les effectuer.


→ N (0, 1)

Le fait qu’un ordinateur calcule de temps en temps en valeurs


approchés n’est à mon avis pas à cacher aux élèves. Outre l’intérêt
historique qu’il peut y avoir (voir plus loin), ce calcul en valeur Le deuxième programme est proposé par ce même élève qui a
approchée resurgit là ou on ne s’y attend pas (tracé de courbes). modifié son programme pour en tenir compte ou par un élève qui a
X −µ

fait dès le début attention à ne pas diviser par zéro.


σ

Pendant la guerre du Golfe en 1991, un anti-missile US Patriot dont le


programme tournait depuis 100 heures a raté l’interception d’un missile Quoi qu’il en soit, on s’aperçoit que le résultat est le même. Le
dx = 1

Irakien Scud. Bilan : 28 morts. L’explication est pourtant banalement simple problème de la valeur interdite subsiste. Cet algorithme pourtant
: l’anti-missile Patriot incrémentait un compteur toutes les 0.1 secondes juste ne donne pas le résultat escompté.
−x 2 /2

avec 0.1 approché avec erreur 0.0000000953 . Au bout de 100 heures, def ex4_v2() :
l’erreur cumulée était de 0.34s. Dans ce laps de temps le Scud parcourt for x in arange(-4,4,0.01) :
e

if x !=-2 :
500 mètres...
+∞

y = (2*x-1)/(x+3)
−∞

— L’exercice 2 sert à leur montrer les syntaxes principales de matplot- plot(x,y,"o")


lib.pyplot import *
Z
ϕ(x)dPX (x)

show()
PBi (A)P(Bi )

— L’exercice 3 permet mathématiques de (re)voir que la courbe repré-


1

sentative d’une fonction n’est qu’un nuage de points. Il suffit donc


de placer suffisamment de points pour avoir visuellement la courbe
représentative de la fonction.
Les questions 3.2 et 3.3 permettent de montrer la syntaxe du pas
X

i ∈I

pour ne pas placer tous les points à coordonnées entières.


p (1 − p)n−k
Z

P(A) =

La question 3.4 sert à montrer que l’on ne peut pas par défaut
E(ϕ(X )) =

mettre de pas décimaux. Ce qui est étonnant pour les élèves qui ne
comprennenet pas pourquoi. Il faut alors leur montrer le arange du
n k

module numpy.
!

— L’exercice 4 qui parait simple dans un premier abord puisque dans


k

On peut alors montrer à l’élève que la variable x ne prend jamais la


un premier temps la majorité des élèves va se contenter de faire un valeur 2 de manière exacte. Elle en est juste très proche.

Maxime Fourny Académie de Franche-Comté 17/20


α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 Je leur présente alors le programme suivant ainsi que l’instruction


axis et fait le parallèle ave la calculatrice et certaine TI.
def ex4_vprof() :
for x in arange(-4,4,0.015625) :
if x !=-2 :
y = (2*x-1)/(x+3)
plot(x,y,"o")
2

show()
pN − j N
jp
N

X
1= j

J
P

)1 ,0( N →

J’essaie (pour les élèves qui le souhaitent) d’ expliquer que l’ordina-


teur ne peut couper que par deux (langage binaire). De ce fait le
µ− X

nombre décimal 0.1 n’est pas "décimal" en binaire. On peut faire le


σ

1
parallèle avec qui devient "décimal" en base 3.
1 = xd 2/

3
— Je traite les exercice 5 et 6 en fin d’année. C’est l’occasion pour
moi de voir ou les élèves en sont. (instruction conditionnelle dans
une boucle itérative et module random). Et mathématiquement, la
2
x−

figure est joli ! On peut s’apercevoir que le cas n=3 est atypique.
e

Lorsque je le corrige je rend la figure dynamique (je ne le demande


∞+
∞−

pas aux élèves).


Z
) x( XPd) x(ϕ

— L’exercice 7 consiste à faire travailler la recherche de racines par


) iB(P)A( iBP
π2

balayage et par dichotomie.


1

X
I∈ i

k−n

Z
= )A(P

) p − 1( k p

= )) X(ϕ(E
!
n
k

Maxime Fourny Académie de Franche-Comté 18/20


6 χ2J −1,α  ' 1 − α
TD Retour : table des matières m.a.j : 13 novembre 2017

3.3 Correction Python y = (2*x-1)/(x+3)



plot(x,y,"o")
Correction exercice 1 show()

Version prof :
def ex4_vprof() :
for x in arange(-4,4,0.015625) :
if x !=-2 :
2

y = (2*x-1)/(x+3)
Correction exercice 3
Np̂j − Npj

plot(x,y,"o")
show()
Np j

def ex3_1() :
for x in range(-1000,1000) : Correction exercice 5 et 6
y = 2*x**2-2*x+3
plot(x,y,"o") Version élève :
show()
X

j =1

def rantanplan_eleve(n) :
J

x_joe = 0
def ex3_2() :

P

y_joe = 0
for x in range(-10000,10000,10) :
→ N (0, 1)

x_jack = 1
y = 2*x**2-2*x+3
y_jack = 0
plot(x,y,"o")
x_william = 0.5
show()
y_william = 0.7
x_rantanplan = 1
X −µ

def ex3_3() : y_rantanplan = 1


σ

for x in range(-1000000,1000000,100) : plot(x_joe,y_joe,"o",color="blue")


y = 2*x**2-2*x+3 plot(x_jack,y_jack,"o",color="blue")
dx = 1

plot(x,y,"o") plot(x_william,y_william,"o",color="blue")
show() plot(x_rantanplan,y_rantanplan,"o",color="red")
for k in range(n) :
−x 2 /2

from numpy import * alea = random()


def ex3_4() : if alea<1/3 :
e

for x in arange(-4,4,0.01) : x_rantanplan = (x_rantanplan+x_joe)/2


+∞

y = 2*x**2-2*x+3 y_rantanplan = (y_rantanplan+y_joe)/2


−∞

plot(x,y,"o") elif alea<2/3 :


Z
ϕ(x)dPX (x)

show() x_rantanplan = (x_rantanplan+x_jack)/2


PBi (A)P(Bi )

y_rantanplan = (y_rantanplan+y_jack)/2
1

else :

Correction exercice 4
x_rantanplan = (x_rantanplan+x_william)/2
Version 1 de l’élève : y_rantanplan = (y_rantanplan+y_william)/2
plot(x_rantanplan,y_rantanplan,"o",color="red")
def ex4_v1() : show()
X

i ∈I

for x in arange(-4,4,0.01) :
Version prof :
p (1 − p)n−k

y = (2*x-1)/(x+3)
Z

P(A) =

plot(x,y,"o")
def rantanplan_prof(n) :
E(ϕ(X )) =

show()
x_joe = 0
Version 2 de l’élève : y_joe = 0
n k

x_jack = 1
!

def ex4_v2() : y_jack = 0


k

for x in arange(-4,4,0.01) : x_william = 0.5


if x !=-2 : y_william = 0.7

Maxime Fourny Académie de Franche-Comté 19/20


α − 1 '  α,1− 2Jχ 6 j TD Retour : table des matières m.a.j : 13 novembre 2017

 x_rantanplan = 1
y_rantanplan = 1
plot(x_joe,y_joe,"o",color="blue")
plot(x_jack,y_jack,"o",color="blue")
plot(x_william,y_william,"o",color="blue")
plot(x_rantanplan,y_rantanplan,"o",color="red")
ion()
draw()
2

for k in range(n) :
alea = random()
pN − j N

if alea<1/3 :
jp

x_rantanplan = (x_rantanplan+x_joe)/2
N

y_rantanplan = (y_rantanplan+y_joe)/2
elif alea<2/3 :

x_rantanplan = (x_rantanplan+x_jack)/2
y_rantanplan = (y_rantanplan+y_jack)/2
X

else :
1= j

x_rantanplan = (x_rantanplan+x_william)/2
P

y_rantanplan = (y_rantanplan+y_william)/2
plot(x_rantanplan,y_rantanplan,"o",color="red")
)1 ,0( N →

draw()
ioff()
show()
µ− X
σ
1 = xd 2/
2
x−
e
∞+
∞−

Z
) x( XPd) x(ϕ
) iB(P)A( iBP
π2
1

X
I∈ i

k−n

Z
= )A(P

) p − 1( k p

= )) X(ϕ(E
!
n
k

Maxime Fourny Académie de Franche-Comté 20/20

Vous aimerez peut-être aussi