diff --git a/27oct/ex4.py b/27oct/ex4.py new file mode 100644 index 0000000..1458523 --- /dev/null +++ b/27oct/ex4.py @@ -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)) diff --git a/27oct/ex5.py b/27oct/ex5.py new file mode 100644 index 0000000..7cca09b --- /dev/null +++ b/27oct/ex5.py @@ -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)) diff --git a/27oct/ex6.py b/27oct/ex6.py new file mode 100644 index 0000000..ac76228 --- /dev/null +++ b/27oct/ex6.py @@ -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)) diff --git a/27oct/ex7.py b/27oct/ex7.py new file mode 100644 index 0000000..c066f9e --- /dev/null +++ b/27oct/ex7.py @@ -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)) diff --git a/27oct/serie6.pdf b/27oct/serie6.pdf new file mode 100644 index 0000000..00b1a11 Binary files /dev/null and b/27oct/serie6.pdf differ