diff --git a/README.md b/README.md
index 13a5bb1..050a8e5 100644
--- a/README.md
+++ b/README.md
@@ -12,24 +12,24 @@ Voici mes réponses pour l'examen 2025 d'_Algorithmes et Structures de données_
But |
-... |
+Compter le nombre de valeurs positives différentes ayant leur opposé dans une liste |
Input |
-... |
+La liste des demi-touches (entiers relatifs non-nuls) |
Output |
-... |
+Le nombre de touches distinctes dont les valeurs positives et négatives sont dans la liste |
Signature |
```python
-def function1(
- *args
-) -> Any:
+def countKey(
+ pieces: list[int]
+) -> int:
```
|
@@ -46,24 +46,26 @@ def function1(
But |
-... |
+Trouver le chemin le plus court entre deux points, en considérant que certaines routes ne sont praticables que de nuit/jour |
Input |
-... |
+Nœud de départ (index), nœud d'arrivée (index) et liste des routes / arêtes (nœud 1, nœud 2, restriction) |
Output |
-... |
+Liste des nœuds (index) à parcourir |
Signature |
```python
-def function2(
- *args
-) -> Any:
+def findSafestPath(
+ start: int,
+ end: int,
+ intersections: list[tuple[int, int, int]]
+) -> list[int]:
```
|
@@ -80,24 +82,25 @@ def function2(
But |
-... |
+Trouver dans un réseau de console un sous-graphe connexe de taille donnée |
Input |
-... |
+Taille n du sous-graphe recherché, liste des connexions |
Output |
-... |
+Liste de n consoles toutes interconnectées |
Signature |
```python
-def function3(
- *args
-) -> Any:
+def findTightlyLinkedConsoles(
+ n: int,
+ consoles: list[tuple[int, int]]
+) -> list[int]:
```
|
@@ -114,24 +117,26 @@ def function3(
But |
-... |
+Compter le nombre de séquences de N coups infligeant un total de H dégâts |
Input |
-... |
+Nombre N de coups dans la séquence, nombre C de coups possibles (dégâts 1 à C inclus), total H de dégâts |
Output |
-... |
+Nombre de séquences possibles |
Signature |
```python
-def function4(
- *args
-) -> Any:
+def computeNbrOfDifferentSequences(
+ N: int,
+ C: int,
+ H: int
+) -> int:
```
|
@@ -148,24 +153,26 @@ def function4(
But |
-... |
+Trouver les placements de pièces Minitris formant un rectangle plein |
Input |
-... |
+Largeur de la grille, longueur de la grille, liste des pièces à poser |
Output |
-... |
+Liste des positions des pièces |
Signature |
```python
-def function5(
- *args
-) -> Any:
+def playMinitrisFastAndWell(
+ board_width: int,
+ board_height: int,
+ pieces: list[tuple[tuple[int,int], tuple[int,int]]]
+) -> list[list[int, int]]:
```
|
diff --git a/src/Ex1.py b/src/Ex1.py
index fbcaa61..e9710c6 100644
--- a/src/Ex1.py
+++ b/src/Ex1.py
@@ -28,7 +28,7 @@ list = []
"""
-def countKey(pieces: list[int])->int:
+def countKey(pieces: list[int]) -> int:
pieces = sorted(pieces)
complete: int = 0
diff --git a/src/Ex2.py b/src/Ex2.py
index d0a544b..9933362 100644
--- a/src/Ex2.py
+++ b/src/Ex2.py
@@ -12,7 +12,7 @@ point d'arrivée, tel que les routes marquées 1 ne soient parcourues que de jou
seulement de nuit (index impair). En plus des routes données, nous pouvons aussi
rester sur un même nœud pour une nuit.
Afin de bien gérer les différences d'états entre jour et nuit, nous pouvons intégrer le demi-jour
-associé à chaque visite de nœud. Ainsi, une même intersection peut avoir deux nœud:
+associé à chaque visite de nœud. Ainsi, une même intersection peut avoir deux nœuds :
un pour une visite de jour, et un de nuit.
Pour résoudre ce problème, comme nous ne pouvons pas établir d'heuristique mesurant
@@ -93,4 +93,4 @@ def findSafestPath(start: int, end: int, intersections: list[tuple[int, int, int
if __name__ == '__main__':
print(findSafestPath(0,2,[(0, 1, -1), (1, 2, 0)]) == [0, 0, 1, 2])
- print(findSafestPath(0, 5, [(0,1,0), (0,2,1), (2,1,-1), (1,3,-1), (2,4,-1), (3,5,1), (3,4,0), (4,5,-1)]) == [0, 1, 3, 5])
+ print(findSafestPath(0, 5, [(0, 1, 0), (0, 2, 1), (2, 1, -1), (1, 3, -1), (2, 4, -1), (3, 5, 1), (3, 4, 0), (4, 5, -1)]) == [0, 1, 3, 5])
diff --git a/src/Ex3.py b/src/Ex3.py
index 993d513..d6d9284 100644
--- a/src/Ex3.py
+++ b/src/Ex3.py
@@ -6,7 +6,7 @@ Explications:
Comme indiqué dans la donnée de l'exercice, il s'agit ici de trouvé un sous-graphe
connexe dans un graphe quelconque de consoles interconnectées
-Pour ce faire nous pouvons procéder ainsi:
+Pour ce faire, nous pouvons procéder ainsi :
Étape 1 :
- Compter le nombre de voisins de chaque nœud (console)
- Éliminer ceux ayant moins de voisins que la taille de sous-graphe recherché
@@ -20,10 +20,10 @@ Pour ce faire nous pouvons procéder ainsi:
Étape 2 :
- Pour chaque nœud du graphe :
- Calculer l'ensemble des nœuds communs entre ses voisins (et lui-même),
- et les voisins des ses voisins (et eux-mêmes)'
- C'est-à-dire, si N1 et un nœuds et nb(N1) = {N2, N3, ...} est l'ensemble de ses voisins,
+ et les voisins de ses voisins (et eux-mêmes)'
+ C'est-à-dire, si N1 est un nœud et nb(N1) = {N2, N3, ...} est l'ensemble de ses voisins,
on cherche l'intersection de {N1} U nb(N1), {N2} U nb(N2), {N3} U nb(N3), etc.
- - Si c'est ensemble contient au moins n éléments, il s'agit alors d'un sous-graphe connexe.
+ - Si cet ensemble contient au moins n éléments, il s'agit alors d'un sous-graphe connexe.
On peut ainsi en extraire les n premiers nœuds comme résultat
"""
@@ -71,6 +71,6 @@ def findTightlyLinkedConsoles(n: int, consoles: list[tuple[int, int]]) -> list[i
if __name__ == '__main__':
- print(findTightlyLinkedConsoles(3,[(0,1),(0,4),(2,1),(3,1),(4,2),(2,3)]) == [1,2,3])
- print(findTightlyLinkedConsoles(4,[(0,1),(0,4),(2,1),(3,1),(4,2),(2,3)]) == [])
- print(findTightlyLinkedConsoles(4,[(0,1),(0,4),(2,1),(3,1),(4,2),(2,3),(1,4),(4,3)]) == [1,2,3,4])
+ print(findTightlyLinkedConsoles(3, [(0, 1), (0, 4), (2, 1), (3, 1), (4, 2), (2, 3)]) == [1, 2, 3])
+ print(findTightlyLinkedConsoles(4, [(0, 1), (0, 4), (2, 1), (3, 1), (4, 2), (2, 3)]) == [])
+ print(findTightlyLinkedConsoles(4, [(0, 1), (0, 4), (2, 1), (3, 1), (4, 2), (2, 3), (1, 4), (4, 3)]) == [1, 2, 3, 4])
diff --git a/src/Ex4.py b/src/Ex4.py
index c96bd79..f5810af 100644
--- a/src/Ex4.py
+++ b/src/Ex4.py
@@ -14,7 +14,7 @@ le calcul récursif puisque cela évite de calculer les états partagés (sous-b
identiques)
Bonus :
-Nous cherchons la valeur N la plus petite telle que:
+Nous cherchons la valeur N la plus petite telle que :
`computeNbrOfDifferentSequences(N, 5, 100) > 2^16`
"""
@@ -72,4 +72,4 @@ def bonus():
if __name__ == '__main__':
print(computeNbrOfDifferentSequences(1, 6, 3) == 1)
print(computeNbrOfDifferentSequences(2, 6, 7) == 6)
- print(bonus())
+ #print(bonus())