"""
Exercice 70 
Écrire une fonction occurrences(v, t) qui renvoie le nombre d’occurrences de la valeur v dans le tableau t. 
"""

def occurrences(v, t):
	compteur = 0
	for element in t:
		if element == v:
			compteur = compteur + 1
	return compteur
	
# la boucle for est différente, on accède pas de la même façon au élément de la liste/tableau ensuite
def occurrences_v2(v, t):
	compteur = 0
	for indice in range(len(t)):	
		if t[indice] == v:
			compteur = compteur + 1
	return compteur
	
print(occurrences(1, [1,2,3,3,3,4,5,5])) # affiche 1
print(occurrences(3, [1,2,3,3,3,4,5,5])) # affiche 3
print(occurrences(5, [1,2,3,3,3,4,5,5])) # affiche 2

"""
Exercice 71 
Écrire un programme qui construit un tableau de 100 entiers tirés au hasard entre 1 et 1000, puis l’affiche. 
"""

import random
a = random.randint(1, 1000)
print(a) # Nombre tiré au hasard entre 1 et 1000

def alea_100():
	l = []
	for _ in range(100):
		l.append(random.randint(1, 1000))
	print(l)

alea_100()

"""
Exercice 72 
Compléter le programme précédent pour calculer et afficher l'élément maximum de ce tableau.
"""

def alea_100_avec_max():
	l = []
	max = 0
	for _ in range(100):
		a = random.randint(1, 1000)
		l.append(a)
		if a > max:
			max = a # Ou max = l[-1] , l'indice -1 sur une liste pour obtenir le dernier element
	print(l)
	print(max)

alea_100_avec_max()

"""
Exercice 73 
Écrire un programme qui tire au hasard mille entiers entre 1 et 10 et affiche ensuite le nombre de fois que chaque nombre a été tiré. Relancer le programme plusieurs fois.
"""

def tirage_et_stats():
	# Creation d'une liste vide contenant 10 zeros
	stats = [0,0,0,0,0,0,0,0,0,0] # ou [0]*10 ou [0 for _ in range(10)]
	
	for _ in range(1000):
		i = random.randint(1, 10)
		
		# i contient une valeur entre 1 et 10, on soustrait 1 pour connaitre l'indice de la valeur de la liste stats a incrementer.
		stats[i-1] = stats[i-1] + 1
	print(stats)

tirage_et_stats()

"""
Exercice 74
En mathématiques, la très célèbre suite de Fibonacci est une séquence infinie d’entiers définie de la façon suivante : 
on part des deux entiers 0 et 1 puis on construit à chaque fois l'entier suivant comme la somme des deux entiers précédents. 
0, 1, 1, 2, 3, 5, ...
Écrire un programme qui construit puis imprime un tableau contenant les 30 premiers termes de la suite. 
Le dernier élément de ce tableau doit être 514 229
"""

def Fibonacci():
	t = [0] * 30
	t[1] = 1
	
	for i in range(2,30):
		t[i] = t[i-1] + t[i-2]

	print(t)

# Deux façons de faire cette exercice :

# On crée un tableau de 30 valeurs toutes initialises à 0
t1 = [0] * 30
print(len(t1)) # affiche 30

# On concatène (on colle à la suite) plusieurs tableaux
t2 = [] 		# tableau vide de taille 0
t2 = t2 + [0] 	
print(t2) # affiche [0]
t2 = t2 + [101] 	
print(t2) # affiche [0, 101]


