.
This commit is contained in:
		
							
								
								
									
										15
									
								
								bac1/q1/27oct/ex4.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								bac1/q1/27oct/ex4.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
import random
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def creer_enchevetrements(bag, i, max_en):
 | 
			
		||||
    """creer une suite d'enchevetrement aleatoire """
 | 
			
		||||
    autre_baguettes = bag[:]
 | 
			
		||||
    autre_baguettes.pop(i)
 | 
			
		||||
    return [(random.choice(autre_baguettes), i) for _ in range(random.randint(1, max_en))]
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    for _ in range(100):
 | 
			
		||||
        p = list(range(42))
 | 
			
		||||
        random.shuffle(p)
 | 
			
		||||
        print(creer_enchevetrements(p, 8, 10))
 | 
			
		||||
							
								
								
									
										18
									
								
								bac1/q1/27oct/ex5.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								bac1/q1/27oct/ex5.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,18 @@
 | 
			
		||||
import random
 | 
			
		||||
from ex4 import creer_enchevetrements
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def creer_mikado(bag):
 | 
			
		||||
    """creer un sac de mikado avec des enchevetrement aleatoire """
 | 
			
		||||
    game = list()
 | 
			
		||||
    nombre_enchevetrements = random.randint(1, len(bag))
 | 
			
		||||
    while len(game) < nombre_enchevetrements:
 | 
			
		||||
        game.append(creer_enchevetrements(bag, random.choice(bag), 1)[0])
 | 
			
		||||
    return game
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    for _ in range(100):
 | 
			
		||||
        bag = list(range(random.randint(2, 42)))
 | 
			
		||||
        random.shuffle(bag)
 | 
			
		||||
        print(creer_mikado(bag))
 | 
			
		||||
							
								
								
									
										27
									
								
								bac1/q1/27oct/ex6.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								bac1/q1/27oct/ex6.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,27 @@
 | 
			
		||||
def peut_retirer(i, bag, jeu):
 | 
			
		||||
    """verifie si une baguette peut etre retiree """
 | 
			
		||||
    on_top = bag[:]
 | 
			
		||||
    for intersection in jeu:
 | 
			
		||||
        if intersection[1] in on_top:
 | 
			
		||||
            on_top.remove(intersection[1])
 | 
			
		||||
    return i in on_top
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def retirer(i, bag, jeu):
 | 
			
		||||
    bag.remove(i)
 | 
			
		||||
    for intersection in jeu:
 | 
			
		||||
        if i in intersection:
 | 
			
		||||
            jeu.remove(intersection)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    from ex5 import creer_mikado
 | 
			
		||||
 | 
			
		||||
    bag = list(range(10))
 | 
			
		||||
    game = creer_mikado(bag)
 | 
			
		||||
    print(game)
 | 
			
		||||
    retirer(5, bag, game)
 | 
			
		||||
    print(game)
 | 
			
		||||
    # print(bag)
 | 
			
		||||
    # print(game)
 | 
			
		||||
    # print(peut_retirer(5, bag, game))
 | 
			
		||||
							
								
								
									
										33
									
								
								bac1/q1/27oct/ex7.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								bac1/q1/27oct/ex7.py
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,33 @@
 | 
			
		||||
from ex6 import peut_retirer, retirer
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def quel_ordre(_bag, jeu):
 | 
			
		||||
    """retourne un ordre possible sinon None """
 | 
			
		||||
    bag = _bag[:]
 | 
			
		||||
    order = list()
 | 
			
		||||
    last_order = None
 | 
			
		||||
    while order != last_order:
 | 
			
		||||
        last_order = order[:]
 | 
			
		||||
        print(last_order)
 | 
			
		||||
        for i in bag:
 | 
			
		||||
            if peut_retirer(i, bag, jeu):
 | 
			
		||||
                order.append(i)
 | 
			
		||||
                retirer(i, bag, jeu)
 | 
			
		||||
    bag_t, order_t = bag[:], order[:]
 | 
			
		||||
    bag_t.sort()
 | 
			
		||||
    order_t.sort()
 | 
			
		||||
    print(order_t, bag_t)
 | 
			
		||||
    if(order_t == bag_t):
 | 
			
		||||
        return order
 | 
			
		||||
    else:
 | 
			
		||||
        return None
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
if __name__ == "__main__":
 | 
			
		||||
    from ex5 import creer_mikado
 | 
			
		||||
 | 
			
		||||
    bag = list(range(10))
 | 
			
		||||
    game = creer_mikado(bag)
 | 
			
		||||
    print(bag)
 | 
			
		||||
    print(game)
 | 
			
		||||
    print(quel_ordre(bag, game))
 | 
			
		||||
							
								
								
									
										
											BIN
										
									
								
								bac1/q1/27oct/serie6.pdf
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								bac1/q1/27oct/serie6.pdf
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
		Reference in New Issue
	
	Block a user