Initiation à la programmation ENSAE 1A

seance6_classe_heritage_cor.tex

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)))