classe Piece
import random class Piece : def tirage_aleatoire(self, precedent) : return random.randint(0,1) def moyenne_tirage(self, n): tirage = [ ] for i in range (n) : precedent = tirage[-1] if i > 0 else None tirage.append( self.tirage_aleatoire (precedent) ) s = sum(tirage) return s * 1.0 / len(tirage) p = Piece() print (p.moyenne_tirage(100))
classe PieceTruquee
class PieceTruquee (Piece) : def tirage_aleatoire(self, precedent) : if precedent == None or precedent == 1 : return random.randint(0,1) else : return 1 if random.randint(0,9) >= 3 else 0 p = PieceTruquee() print (p.moyenne_tirage(100))
construction avec des fonctions
class PieceTruqueeMix (PieceTruquee) : def tirage_aleatoire(self, precedent) : if random.randint(0,1) == 0 : return Piece.tirage_aleatoire(self, precedent) else : return PieceTruquee.tirage_aleatoire(self, precedent) p = PieceTruqueeMix() print (p.moyenne_tirage(100))
exercice 2 avec des fonctions
print (moyenne_tirage(100, lambda v : random.randint(0,1) if random.randint(0,1) == 0 \ else truquee(v)))