from graphes import * # Exercice 1 # # Le graphe G0 possède une unique composante connexe # Le graphe G1 possède 2 composantes connexes : {1,3,5} et {2,4,6} # Le graphe G2 possède 3 composantes connexes : {Q}, {J,K,L} et {M,N,O,P} # # degré(A) = 3 # degré(1) = degré(2) = ... = degré(6) = 2 # degré(J) = 4 # # chaines de longueur max # dans G0 : (D,E,F,B,A,C,I,H) # dans G1 : (1,3,5) ou (2,4,6) # dans G2 : (M,N,O,P) # Exercice 2 def mystere(n): k = n while k%2 == 0: k = k//2 return k == 1 print(mystere(240)) print(mystere(256)) #La fonction mystere teste si n est une puissance de 2 # Exercice 3 def sommeSuperieureA(n) : c = 0 s = 0 while s <= n : s = s + elementAleatoireListe(list(range(1,7))) c = c + 1 return c # Exercice 4 : dominant def sommetsTousMarques(G): for s in listeSommets(G): if not estMarqueSommet(s): return False return True def marquerSommets(G, U): for s in listeSommets(G): demarquerSommet(s) for u in U: marquerSommet(u) for v in listeVoisins(u): marquerSommet(v) def dominant(G, U): marquerSommets(G, U) return sommetsTousMarques(G) #E4={B,C,D,E} ne domine pas G0; H n'est pas dans E4 et n'est pas voisin d'un sommet dans E4 #E6={A,D,I} ne domine pas G0; F n'est pas dans E6 et n'est pas voisin d'un sommet dans E6 from PIL.Image import * # Exercice 5 def dynamique(img): w = img.width h = img.height ngMin = 255 ngMax = 0 for y in range(h): for x in range(w): (ng,ng,ng) = Image.getpixel(img, (x, y)) if ng < ngMin: ngMin = ng if ng > ngMax : ngMax = ng return ngMax - ngMin # Exercice 6 def rectanglePlein(img, x1, x2, y1, y2, c): for x in range(x1,x2+1): for y in range(y1,y2+1): Image.putpixel(img,(x,y),c) def traceRectangles(img, delta): w = img.width h = img.height x1 = 0 x2 = w-1 y1 = 0 y2 = h-1 c = (0, 0, 0) while (x1 <= x2 and y1 <= y2): rectanglePlein(img, x1, x2, y1, y2, c) x1 = x1 + delta x2 = x2 - delta y1 = y1 + delta y2 = y2 - delta if c == (255, 255, 255): c = (0, 0, 0) else : c = (255, 255, 255) #w = 300 #h = 200 #img = new("RGB", (w, h)) #traceRectangles(img, 10) #Image.show(img)