• Aucun résultat trouvé

TD 3 - Fonctions 1.

N/A
N/A
Protected

Academic year: 2022

Partager "TD 3 - Fonctions 1."

Copied!
3
0
0

Texte intégral

(1)

TD 3 - Fonctions

1. La fonction tordue from math import * def f(x) :

if x <= 0 : return(x) if x < 1 : return(exp(x)) return(log(x+1))

u = 2

n = int(input("n?"))

for k in range (n) : u = f(u*u)-f(u) print(u)

2. Suite complexe def add(z1,z2) :

return ( [ z1[0]+z2[0] , z1[1]+z2[1] ] ) def mult(z1,z2) :

Re = z1[0]*z2[0] - z1[1]*z2[1]

Im = z1[0]*z2[1] + z1[1]*z2[0]

return ( [ Re , Im ] ) z = [ 1/2 , 1/2 ]

for k in range(5) :

newZ = [0,1] # i

newZ = add( newZ , mult(z , [1,-1]) ) # + (1-i)z newZ = add( newZ , mult(z , z) ) # + z^2 z = newZ

print(newZ)

3. Méthode de Monte Carlo from random import * def X() :

nb = 0

for k in range (10) :

while randint(1,2)==1 : nb = nb + 1 # les FACE

nb = nb + 1 # le PILE

return(nb) def PlusGdNb() :

M = X() S = X() if M>S :

return(M) else :

return(S) s = 0

for k in range(1000) : s = s + PlusGdNb() print(s/1000.0)

1

(2)

4. Recherche d'un mot dans un texte def LeMotEstIci (mot, texte, pos) :

OK = True

kMot = 0 # case du mot à tester

while OK and kMot<len(mot) and pos+kMot<len(texte) : if mot[kMot] != texte[pos + kMot] :

OK = False # une mauvaise lettre et c'est perdu kMot = kMot + 1

return(OK and kMot==len(mot)) # il faut que toute les lettres aient été correctes

# et qu'on ait parcouru tout le mot mot = input ("mot ?")

texte = input ("texte ?") DansTexte = False

for k in range(len(texte)) :

if LeMotEstIci (mot, texte, k) : DansTexte = True

print(DansTexte)

5. Le mot le plus long

def OnPeutFaire(mot, lettres) :

alpha = "abcdefghijklmnopqrstuvwxyz"

OK = True

for k in range(26) : c = 0

d = 0

for x in range(len(mot)) :

if alpha[k] == mot[x] : c = c + 1 for x in range(len(lettres)) :

if alpha[k] == lettres[x] : d = d + 1 if c>d : OK = False

return(OK)

Dico = ["vivement" , "les" , "vacances" , "bon" , "sang"]

L = input ("lettres ?") MotPlusLong = ""

for k in range(len(Dico)) : if OnPeutFaire(Dico[k] , L) :

if len(Dico[k]) > len(MotPlusLong) : MotPlusLong = Dico[k]

if MotPlusLong == "" : print("Rien trouvé") else :

print(MotPlusLong)

2

(3)

6. Les allumettes from random import * def CreerTas() :

a = []

s = 0

for k in range(5) : NbAlu = randint(1,10) a.append(NbAlu) s = s + NbAlu a.append(55-s) return a def Transfo(a) :

b = []

for x in a : if x>1 :

b.append(x-1) b.append(len(a)) return b

T = CreerTas()

for k in range(100) : print(T)

T = Transfo(T) 7. Suite de Conway

def Transfo(u) :

v = "" # on va créer le nouveau terme de la suite de Conway a = u[0] # a représente le caractère dont on cherche la fréquence nombre = 1 # on va compter le nombre de a

for i in range(1,len(u)) :

if u[i]==a : # si on tombe sur des a, on continue à compter nombre = nombre + 1

else : # si on tombe sur autre chose qu'un a, on enregistre ! v = v + str(nombre) + str(a)

a = u[i]

nombre = 1

v = v + str(nombre) + str(a) # on note les données de la dernière séquence return(v)

u = "1"

for k in range(10) : print(u)

u = Transfo(u) 8. Les permutations

def NextPermut(a) :

###### Trouver la 1ère case à partir de laquelle ça descend, en partant de la fin k = len(a)-2

while k>=0 and a[k]>a[k+1] : k=k-1

###### Trouver la + petite parmi les cases à droite de a[k] plus grandes que a[k]

m = k+1

for i in range(k+2,len(a)) :

if (a[i]<a[m] and a[i]>a[k]) : m = i

###### Echanger a[k] et a[m]

a[k],a[m] = a[m],a[k]

###### Trier par ordre croissant les cases a[k+1]...a[len(a)-1]

for i in range(k+1,len(a)) : for j in range(i,len(a)) :

if a[j]<a[i] :

a[i],a[j] = a[j],a[i]

return a

3

Références

Documents relatifs

Cette fonction est définie (mathématiquement) par récurrence, mais il ne s’agit pas d’une application du schéma de récurrence, car on utilise les deux valeurs précédentes de

Donner une définition récursive primitive de la fonction qui à un entier n associe le code de la suite de diviseurs premiers de n dans l’ordre croissant..

2) La fonction racine carrée

[r]

• Ecrire une fonction PlusGdNb() qui simule les suites de lancers de ta mère et ta soeur et qui renvoie le plus grand nombre de lancers qui a été nécessaire entre ta mère et ta

[r]

On veut étudier les variations de l'aire globale des deux figures lorsqu'on déplace le centre A du disque.. On

On veut étudier les variations de l'aire globale des deux figures lorsqu'on déplace le centre A du disque.. On