Dans la théorie des ensembles, les nombres naturels sont généralement codés comme des ensembles purs , c'est-à-dire des ensembles qui ne contiennent que l'ensemble vide ou d'autres ensembles purs. Cependant, tous les ensembles purs ne représentent pas des nombres naturels. Ce défi consiste à décider si un ensemble pur donné représente un codage de nombre naturel ou non.
L'encodage des nombres naturels fonctionne de la manière suivante 1 :
- Zéro est l'ensemble vide:
- Pour un nombre :
Ainsi, les encodages des premiers nombres naturels sont
La tâche
- Étant donné une chaîne représentant un ensemble pur, déterminez si cet ensemble code pour un nombre naturel selon la construction ci-dessus.
- Notez cependant que les éléments d'un ensemble ne sont pas ordonnés, donc n'est pas la seule représentation valide de car par exemple représente le même ensemble.
- Vous pouvez utiliser
[]
,()
ou<>
au lieu de{}
. - Vous pouvez supposer que les ensembles sont donnés sans le
,
séparateur as. - Vous pouvez supposer qu'il n'y aura pas d'éléments en double dans l'entrée, par exemple
{{},{}}
n'est pas une entrée valide, et que l'entrée est bien formée, par exemple non{{},
,{,{}}
ou similaire.
Cas de test
Vrai:
{}
{{}}
{{},{{}}}
{{{}},{}}
{{},{{}},{{},{{}}}}
{{{},{{}}},{},{{}}}
{{{{}},{}},{{}},{}}
{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}}
{{{{{}},{}},{{}},{}},{{}},{},{{},{{}}}}
{{},{{}},{{},{{}},{{},{{}}},{{},{{}},{{},{{}}}}},{{{}},{}},{{},{{}},{{},{{}}}}}
{{{{{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}}
Faux:
{{{}}}
{{{{}}}}
{{{{}},{}}}
{{},{{}},{{{}}}}
{{{},{{}}},{{}}}
{{{{{}}},{}},{{}},{}}
{{},{{}},{{},{{}}},{{},{{}},{{{}}}}}
{{{{{}},{}},{{{}}},{}},{{}},{},{{},{{}}}}
{{{{{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}},{{{{{}},{}},{{}},{}},{{{}},{}},{{}}},{{{{}},{}},{{}},{}},{{{}},{}},{{}},{}}
Connexes: construction naturelle (sortie de l'encodage d'ensemble d'un nombre naturel donné.)
1 Voir https://en.wikipedia.org/wiki/Set-theoretic_definition_of_natural_numbers