Vérifiez si deux éléments sont égaux après avoir remplacé
-
05-11-2019 - |
Question
Disons qu'un élément est soit un nombre naturel, soit une liste d'articles. Des exemples d'articles sont:
- 1
- [2]
- [4, [3, 1], 3, 4]
Une règle indique que deux éléments sont égaux. Par exemple:
- 1 = 2
- 3 = [3, 1]
- [4, 3] = [1, 5]
Lorsque vous utilisez ces exemples de règles, nous pouvons nous transformer [4, [3, 2]] en [4, [3, 1]] en [4, 3] en [1, 5] et nous pouvons dire que [4, [3 , 2]] est égal [1, 5].
Je veux trouver un algorithme qui, compte tenu des articles $ a $ et $ b $ et un ensemble fini de règles, détermine si $ a = b $.
J'ai déjà pensé à un algorithme qui fonctionne dans certains cas. Mais j'espère trouver un algorithme efficace qui fonctionne dans tous les cas. Ce serait également bien si l'algorithme peut détecter $ a not = b $ au lieu de chercher infiniment des moyens de laisser $ a = b $. Est-ce un problème connu? Toute aide est appréciée.
Remarque: nous pouvons simplifier le problème en n'autorisant que le numéro 1 au lieu de chaque nombre naturel. Ceci est équivalent, car nous pouvons transformer 1 en [1], 2 en [1, 1], 3 en [1, 1, 1], etc.
Pas de solution correcte