"TANT QUE"

Nombre Mystérieux.

on propose de jouer au Nombre Mystérieux :

La règle de ce jeu est très simple. L'ordinateur choisit une valeur entière comprise entre 1 et 100 au hasard. Le joueur essaie de trouver cette valeur. A chaque essai, l'ordinateur affiche l’un de ces trois messages :

  1. Bravo, vous avez gagné !
  2. C’est plus …
  3. C’est moins …

Écrire un programme qui simule ce jeu

Remarque

Pour crée un nombre entier aléatoire entre 1 et 100 on utilise le module random comme suit :

import random
nombre = random.randint(1,100)

Pour en savoir plus, voir ce cours

Vous trouverez toutes ces fonctions sur le site de documentation python.

Résolution de l'exercice "Nombre Mystérieux".

import random
mystere = random.randint(1,100)
trouve = True
while trouve :
	nombre = int(input('Entrez un entier entre 1 et 100 : '))
	if nombre == mystere :
		trouve = False
	elif nombre < mystere :
		print("C'est plus grand")
	else :
		print("C'est plus petit")
print("Bravo, vous avez gagné !")

Convergence d'une suite.

Une suite u est définie, pour tout entier naturel n, par \[\begin{equation} \left\{ \begin{aligned} u(0) = 0\\ u(n+1) = u(n) + \frac{1}{(n+1)(n+2)}\\ \end{aligned} \right. \end{equation}\]

  1. Programmer le calcul de u(n). Émettre une conjecture sur la convergence de cette suite.
  2. Ecrire un programme permettant d'afficher le plus petit entier naturel n à partir duquel on a : \[\mid(u(n)-1)\mid< 0.001\]

Résolution de la question "Le calcul de u(n)".

n = int(input("Saisir la valeur de l'entier naturel n : "))
k = 0
u = 0
while k < n :
	u = u + 1/((k+1)*(k+2))
	k = k + 1
print("Le terme de la suite au rang ", n, " est : ", u)

Résolution de la question "\[\mid u(n)-1 \mid< 0.001\]".

from math import *
u = 0
n = 0
while abs(u - 1) > 0.001 :
	u = u + 1/((n+1)*(n+2))
	n = n + 1
print("Le plus petit entier n tel que |u(n) - 1 | < 0.001 est ", n)

Croissance de la factorielle.

Soit n un entier positif.
On appelle factorielle n (et on note n!) l'entier égal au produit des entiers de 1 à n.
Écrire un programme qui :

  1. demande un entier strictement positif B,
  2. détermine et affiche le plus petit entier n tel n! > B.

Résolution de l'exercice "Croissance de la factorielle".


B=int(input('Entrez un entier B > 0 : '))
p=1
n=0
while p <= B :
	n+=1
	p*=n
print('Le premier entier n tel que n! > {} est {}.'.format(B,n) )

blog.

Soit x ≥ 1 un nombre réel. On appellera blog(x) le plus petit entier n tel que x ≤ 2n.

Écrire un programme en python prenant en entrée un float x ≥ 1 et donnant en sortie blog(x).

Résolution de l'exercice blog.


x = float(input('Entrez une valeur réelle de x : '))
n = 0
while x > 1 :
    x/=2
    n+=1
print('blog({}) = {}.'.format(x, n) )

Consulter la page sur le logarithme.

PGCD.

Pour déterminer le pgcd de deux entiers naturels a et b, on utilise les propriétés suivantes :

  1. pgcd(a,0)=0
  2. pgcd(a,b)=pgcd(b,r) où r est le reste de la division euclidienne de a par b.

Lorsqu'on remplace pgcd(a,b) par pgcd(b,r), on remplace l'élément b par un élément strictement plus petit (et ≥ 0). En réitérant le procédé, on finit par arriver à une valeur de r égale à 0. La dernière valeur de r non nulle (qui peut éventuellement être b lui-même dans certains cas) est alors le pgcd de a et b.

En d'autres termes, le calcul du pgcd revient à remplacer le couple (a, b) par le couple (b,r) successivement jusqu'à ce que r soit nul puis à appliquer la règle 1 citée ci-dessus.

Écrire un programme qui demande deux entiers naturels a et b et détermine ensuite leur pgcd suivant le principe précédent.

Résolution de l'exercice PGCD.

Premier programme.


a=int(input('Entrez un entier naturel a : '))
b=int(input('Entrez un entier naturel b : '))


while b!=0 :
	aux= a
	a=b
	b= aux%b
	
print(a) 

Second programme.

On peut en python se passer de la variable intermédiaire aux utilisée dans le programme précédent à l'aide d'affectations parallèles.

Par exemple, si l'on veut échanger les valeurs des variables a et b, il suffit d'écrire a,b=b,a en langage python (dans la plupart des autres langages, une variable auxiliaire serait nécessaire).

Cette particularité permet d'écrire un programme plus proche de notre descriptif :


a=int(input('Entrez un entier naturel a : '))
b=int(input('Entrez un entier naturel b : '))

while b!=0 :
	a,b =b, a%b
	 
print(a)