DOVI Bryan 1°1
Voici l'accès à mes programmes
def fonction1(x,y):
if x!=0 and y!=0:
return 1/(x*y)
else:
return None
print (fonction1(2,3))
def fonction2(x,y):
if x==0 or y==0:
return None
else:
1/(x*y)
Fonctions booléennes
Addition binaire
#n=[True,False,True,True,False,True,True,False,True]
#p=[True,False,True,True,False,True,True,False,True]
n=[1,0,1,0,1,0,1,0,1,0]
p=[1,0,1,0,1,0,1,0,1,0]
r=[0,0,0,0,0,0,0,0,0,0,0]
c=0
for i in range(9,-1,-1):
a = n[i]
b = p[i]
print(i)
r[i+1] =(a and not b and not b) or (not a and b and not c) or (not a and not b and c) or (a and b and c)
c = (a and b) or (b and c) or (a and c)
r[0]=c
print(r)
a="1010101010"
b="1010101010"
sum=bin(int(a,2)+int(b,2))
print(sum)
console python:
>>>
9
8
7
6
5
4
3
2
1
0
[1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 0]
0b10101010100
Conversion d'un nombre binaire
def bin(n):
"""Convertit un nombre en binaire"""
q = -1
res = ''
while q != 0:
q = n // 2
r = n % 2
res = 'r' + res
n = q
return res
print (bin(3))
def conversion(n):
if n > 1:
conversion(n//2)
print(n%2,end="")
#Demander à l'utilisateur d'entrer un nombre
nbr = int(input("Entrer un nombre decimal:"))
conversion(nbr)
Console:
>>>
rr
Entrer un nombre decimal:13
1101
Programme de popularité de sites webs
import random
PageWeb=["A","B","C","D","E","F"]
Hypertexte={}
Hypertexte={("A"):("B","C","D"),
("B"):("C"),
("C"):("A","E","D"),
("D"):("F","E","C","A","B"),
("E"):("C","F","D"),
("F"):("E")}
Nb_clic={}
Nb_clic={"A":0,"B":0,"C":0,"D":0,"E":0,"F":0}
Total_clic=0
for i in range(1000):
z=random.random()
x=random.choice(PageWeb)
while z <0.80:
Nb_clic[x] = Nb_clic[x]+1
Total_clic[x] = Total_clic[x]+1
print(x,Nb_clic)
from math import *
x=[0, 54, -15, -23, 47, 12, 28, 30, 14, -88, 2, 92, -6, 13,-27]
y=[0, 41, 99, -40, -20, 0, -99, -5, 14, -98, 16, 97, 55, 43, 3]
distances=[]
maisons=[]
def distance_entre_deux_points (xa,xb,ya,yb):
return sqrt((xb-xa)**2+(ya-yb)**2)
for j in range (1,len(x)):
dist_inter=[]
for i in range (1,len(x)):
dist_inter.append(distance_entre_deux_points(x[i-1],x[i],y[i-1],y[i]))
distances.append(min(dist_inter))
maisons.append(dist_inter.index(min(dist_inter)))
Algorithme Glouton (ma version)
# Créé par j.laclaverie, le 15/12/2023 en Python 3.7
from math import *
x=[0, 54, -15, -23, 47, 12, 28, 30, 14, -88, 2, 92, -6, 13,-27]
y=[0, 41, 99, -40, -20, 0, -99, -5, 14, -98, 16, 97, 55, 43, 3]
distances=[0] # stocke toutes les distances minimales
maisons=[0] # Stocke tous les indices des maisons les plus proches
def distance_entre_deux_points (xa,xb,ya,yb):
return sqrt((xb-xa)**2+(ya-yb)**2)
for j in range (1,len(x)):
dist_inter=[] # stocke toutes les distances entre le point central et les maisons
for i in range (1,len(x)):
if i not in maisons:
dist_inter.append(distance_entre_deux_points(x[maisons[-1]],x[i],y[maisons[-1]],y[i]))
else : dist_inter.append(10000)
distances.append(min(dist_inter))
maisons.append(dist_inter.index(min(dist_inter)))
Algorithme Glouton (Correction)
Nombreux problèmes d'indentation sur cette partie qui m'ont causés beaucoup d'erreurs tel que:
Temps total estimé: environ 2 heures
difficulté: moyenne
Tri à bulles
Pour tester les tris à sélection, insertion et à bulle j'ai uniquement tester les listes avec seulement 100 éléments, puis quand j'étais sur que ça à marcher j'ai remis les listes à 200,400,800 et 1000 éléments.
Traceback (most recent call last):
File "U:\SNT\NSI\(n)automatisation_et_trace_mesure_duree_tri_selection_insertion_sort_sorted.py", line 100, in <module>
tracer_figure (duree_sort,duree_sorted,duree_insertion, duree_selection,duree_bulle,n)
File "U:\SNT\NSI\(n)automatisation_et_trace_mesure_duree_tri_selection_insertion_sort_sorted.py", line 93, in tracer_figure
plt.plot(n,duree_bulle,"o", color='green', label= 'bulle', marker="3")
File "C:\EduPython\App\lib\site-packages\matplotlib\pyplot.py", line 2796, in plot
is not None else {}), **kwargs)
File "C:\EduPython\App\lib\site-packages\matplotlib\axes\_axes.py", line 1665, in plot
lines = [*self._get_lines(*args, data=data, **kwargs)]
File "C:\EduPython\App\lib\site-packages\matplotlib\axes\_base.py", line 225, in __call__
yield from self._plot_args(this, kwargs)
File "C:\EduPython\App\lib\site-packages\matplotlib\axes\_base.py", line 391, in _plot_args
x, y = self._xy_from_xy(x, y)
File "C:\EduPython\App\lib\site-packages\matplotlib\axes\_base.py", line 270, in _xy_from_xy
"have shapes {} and {}".format(x.shape, y.shape))
ValueError: x and y must have same first dimension, but have shapes (1,) and (284500,)
Tri sort: le plus efficace de tous les tris, capable de trier des millions d'éléments en quelques dixièmes de secondes. Ce tri existe dans Python, j'ai seulement ajouté la variable 'duree' pour calculer le temps.
Tri sorted: le second tri le plus efficace des tris, capable de trier des millions d'éléments en quelques dixièmes de secondes. Comme le précédent, ce tri existe dans Python, j'ai seulement ajouté la variable 'duree' pour calculer le temps.
Tri insertion: beaucoup plus lent que les autres, ce programme a été fait manuellement dans Python à l'aide de plusieurs boucles. La variable 'duree' est toujours présente pour pouvoir évaluer le temps de tri.
Tri sélection : le plus lent, fait manuellement dans Python à l'aide de boucles et conditions. La variable 'duree' est encore là pour le temps.