Le système de nombres ordinaux est un système avec des nombres infinis. Beaucoup de nombres infinis. Tant de nombres infinis qu'il n'a littéralement pas d'infini pour représenter sa propre infinité. L'image ci-dessus donne une petite idée de leur fonctionnement. Un nombre ordinal ( construction de Von Neumann ) est un ensemble d'ordinaux précédents. Par exemple, 0 est l'ensemble vide, 1 est l'ensemble {0}, 2 est l'ensemble {0, 1} et etc. Ensuite, nous arrivons à ω, qui est {0, 1, 2, 3 ...}. ω + 1 est {0, 1, 2, 3 ... ω}, ω fois deux est {0, 1, 2 ... ω, ω + 1, ω + 2 ...} et vous continuez comme cette.
Votre programme affichera un ensemble d'ordinaux, tels que {0, 1, 4}. Votre score sera alors le moins ordinal plus que tous les ordinaux de votre set. Pour {0, 1, 4}, le score serait 5. Pour {0, 1, 2 ...}, le score serait ω.
Comment sortez-vous vos ordinaux que vous demandez. Code bien sûr. À savoir, votre programme affichera une liste potentiellement infinie d'autres programmes, entre guillemets, un sur chaque ligne (utilisez la chaîne littérale "\ n" pour représenter les nouvelles lignes). Un programme correspond à son score comme indiqué ci-dessus. Par exemple, si vous sortez
"A"
"B"
"C"
où A, B et C sont eux-mêmes des réponses valides et ont des scores {0, 1, 4}, le score de votre programme serait 5. Notez que A, B et C doivent être des programmes complets, pas des fragments.
Sur la base des règles ci-dessus, un programme qui ne produit rien a un score de 0 (le moins ordinal supérieur à tous {} est 0). Souvenez-vous également qu'un ensemble ne peut pas se contenir lui-même, via l' axiome de fondation . A savoir, chaque ensemble (et donc ordinal) a un chemin vers zéro. Cela signifie qu'un quine complet serait invalide car ce n'est pas un ensemble.
De plus, aucun programme n'est autorisé à accéder à des ressources externes (son propre fichier, Internet etc ...). De plus, lorsque vous listez votre score, mettez la forme normale du cantor à côté si elle n'est pas déjà sous la forme normale du cantor, si vous le pouvez (sinon, quelqu'un d'autre peut le faire).
Après avoir pris en compte tout ce qui précède, la réponse réelle que vous publiez doit être inférieure à 1 000 000 octets (sans compter les commentaires). (Cette limite supérieure n'entrera probablement en jeu que pour le code généré automatiquement). De plus, vous pouvez incrémenter votre score pour chaque octet que vous n'utilisez pas (car nous avons affaire à des infinis, cela ne sera probablement pris en compte que lorsque les ordinaux sont très proches ou identiques). Encore une fois, ce paragraphe s'applique uniquement à la réponse publiée, pas aux réponses générées, ni à celles générées par les réponses générées, etc.
Celui-ci a la balise quine, car il peut être utile de générer au moins une partie du code propre des sources, pour une utilisation dans la fabrication de grandes ordinales. Ce n'est en aucun cas requis (par exemple, une soumission avec un score de 5 n'aurait probablement pas besoin de son propre code source).
Pour un exemple élaboré et annoté, voir ici .