May 20, 2024

Wiki

Python

Aide

edit SideBar

Search

Un peu de mathématiques en python


Réaliser un ou plusieurs exercices suivants, ceux que vous préférez.

Nombres parfaits

  1. Ecrire un fonction diviseurs(n) qui retourne la liste des diviseurs positifs d'un entier $n$ rangés dans l'ordre croissant.
  2. Un nombre entier $n$ est dit parfait si la somme des diviseurs positifs de $n$, distincts de $n$, est égale à $n$. Par exemple, 6 est un nombre parfait.
  3. Ecrire une fonction parfait(n) qui renvoie la liste de tous les nombres parfaits compris (au sens large) entre 1 et $n$.

Séries statistiques à une variable

On considère une série statistique simple $\{ \;(x_i\,,\,n_i)\;\mathrm{avec}\; 1\leq i\leq p\}$. Sa moyenne $m$ et sa variance $V$ sont définies par :

$ m=\frac{1}{N}\sum_{i=0}^{p} n_i\,x_i \qquad\mathrm{et}\qquad V=\frac{1}{N}\sum_{i=0}^{p}n_i(x_i-m)^2$

$N$ désigne l'effectif total de la population étudiée.

  1. Ecrire un programme qui demande à l'utilisateur de saisir deux listes de même taille xi et ni. (xi étant la liste des valeurs observées du caractère et ni celles des effectifs associés)
  2. Faire calculer la moyenne de cette série à l'aide d'une fonction moy(x,n).
  3. Faire calculer la variance de cette série à l'aide d'une fonction var(x,n).

Chiffrement affine

On décide de coder un message secret en procédant comme suit :

  • à chaque lettre $\alpha$ du message, on associe son rang $x$ dans l'alphabet (rang compris entre 0 et 25) : a:0 , b:1 , c:2 , ... , z:25
  • on calcule $f(x)$ le reste de la division euclidienne de $5x+2$ par 26
  • la lettre $\alpha$ est alors codée par la lettre ayant pour rang $f(x)$ dans l'alphabet.
  1. Coder à la main le mot iut.
  2. Ecrire une fonction Python qui prend en paramètre une chaîne de caractères écrite en minuscule et sans accent, et qui retourne la chaîne encodée par le chiffrement affine décrit ci-dessus.

La suite de Douglas Hofstadter

Douglas Hofstadter a laissé son nom à la suite ci-dessous, dans son livre Godel, Escher, Bach :

  1 3 7 12 18 26 35 45 56 69 83 98 114 131

Pour comprendre comment elle marche, écrivons en-dessous la suite des premières différences (ce sont les quantités qui séparent un terme de son voisin) :

  S : 1 3 7 12 18 26 35  45  56  69  83  98  114  131
  d :  2 4 5  6  8  9  10  11  13  14  15  16   17

...les nombres qui ne figurent pas dans la première suite sont dans la deuxième, et vice versa. C'est d'ailleurs la définition même de cette suite : elle est construite en additionnant au dernier nombre écrit le plus petit entier non présent dans S ou d.

Construire la suite de Hofstadter. On fera une fonction qui à $n$ associe le $n$ième terme de cette suite.

Indicatrice d'Euler

La fonction indicatrice d'Euler $\phi(n)$ est égale au nombre d'entiers entre 0 et $n-1$ qui sont premiers avec $n$, en convenant que

  • $\phi(0) = 0$,
  • $\phi(1) = 1$.
  1. Que vaut $\phi(12)$ ?
  2. Faire une fonction qui renvoie $\phi(n)$.
  3. Trouver expérimentalement, avec votre fonction, un lien entre $\phi(n \times m)$ et $\phi(n)$, $\phi(m)$.
  4. D'après vous, à quoi est égal $\phi(p^n)$ quand $p$ est premier ?

Triangle de Pascal

1. Faire une fonction qui construit le triangle de Pascal jusqu'à sa $n$ième ligne. Elle renverra une liste de listes.

2. Faire une fonction qui reçoit cette liste de listes en argument, et qui retourne une représentation en triangle :

1      
11     
121    
1331   
14641  
15101051 
1615201561
(on pourra utiliser les tabulations \t).

3. Utilisez cette fonction pour vérifier expérimentalement que la somme des termes de la $n$ième ligne est égale à $2^n$. On donnera le bout de code qui permet cette vérification.

Page Actions

Recent Changes

Group & Page

Back Links