Prépa Code Connexion Inscription

Exercices de programmation pour classes préparatoires

← Retour aux exercices

Coloration de graphe

python ★★★★☆

On représente un graphe non orienté par sa matrice d'adjacence : graphe[i][j] vaut 1 si les sommets i et j sont reliés par une arete, 0 sinon.

Écrire une fonction coloration(graphe, k) qui détermine s'il est possible de colorier les sommets du graphe avec au plus k couleurs, de sorte que deux sommets adjacents n'aient jamais la meme couleur. La fonction renvoie une liste donnant la couleur (un entier de 0 a k-1) de chaque sommet, ou une liste vide [] si c'est impossible.

On utilisera un algorithme de backtracking : pour chaque sommet, essayer les couleurs de 0 a k-1 ; vérifier que la couleur est compatible avec les voisins déja coloriés ; si oui, passer au sommet suivant ; sinon, revenir en arriere.

Exemples

AppelRésultat attendu
coloration([[0,1,1],[1,0,1],[1,1,0]], 3) [0, 1, 2]
coloration([[0,1,1],[1,0,1],[1,1,0]], 2) []

Votre code

Connectez-vous pour soumettre du code.