Vous connaissez peut-être le mathématicien von Koch par son célèbre flocon de neige. Cependant, il a des problèmes informatiques plus intéressants dans ses manches. En effet, jetons un œil à cette conjecture:
Étant donné un arbre avec des n
nœuds (donc des n-1
arêtes). Trouvez un moyen d'énumérer les nœuds de 1
à n
et, en conséquence, les arêtes de 1
à n-1
de telle manière que, pour chaque arête, k
la différence de ses numéros de nœuds soit égale à k
. La conjecture est que cela est toujours possible.
Voici un exemple pour le rendre parfaitement clair:
TA TÂCHE
Votre code prendra en entrée un arbre, vous pouvez prendre le format que vous souhaitez mais pour les cas de test je fournirai l'arbre par leurs arcs et la liste de leurs nœuds.
Par exemple, c'est l'entrée pour l'arbre dans l'image:
[a,b,c,d,e,f,g]
d -> a
a -> b
a -> g
b -> c
b -> e
e -> f
Votre code doit renvoyer l'arborescence avec des nœuds et des bords numérotés. Vous pouvez renvoyer une sortie plus graphique mais je fournirai ce type de sortie pour les cas de test:
[a7,b3,c6,d1,e5,f4,g2]
d -> a 6
a -> b 4
a -> g 5
b -> c 3
b -> e 2
e -> f 1
CAS D'ESSAI
[a,b,c,d,e,f,g] [a7,b3,c6,d1,e5,f4,g2]
d -> a d -> a 6
a -> b a -> b 4
a -> g => a -> g 5
b -> c b -> c 3
b -> e b -> e 2
e -> f e -> f 1
[a,b,c,d] [a4,b1,c3,d2]
a -> b a -> b 3
b -> c => b -> c 2
b -> d b -> d 1
[a,b,c,d,e] [a2,b3,c1,d4,e5]
a -> b a -> b 1
b -> c b -> c 2
c -> d => c -> d 3
c -> e c -> e 4
C'est le code-golf, c'est la réponse la plus courte en octets!
Remarque: Ceci est plus fort que la conjecture de Ringel-Kotzig , qui stipule que chaque arbre a un étiquetage gracieux. Étant donné que dans la conjecture de Koch, il n'est pas possible de sauter des entiers pour l'étiquetage contrairement à l'étiquetage gracieux dans la conjecture de Ringel-Kotzig. Un étiquetage gracieux a déjà été demandé ici .