De toutes les mathématiques, il y aura toujours quelques théorèmes qui vont au-delà de tout bon sens. L'un d'eux est le fait qu'il existe différentes tailles d'infini. Un autre fait intéressant est l'idée que de nombreux infinis qui semblent être de taille différente sont en fait de même taille. Il y a autant de nombres pairs que d'entiers qu'il y a de nombres rationnels.
Le concept général de cette question est de confronter l'étrange réalité de l'infini. Dans ce défi, votre programme affichera une liste qui:
- À tout moment spécifique, ayez toujours un nombre entier d'entrées
- Contenir éventuellement (s'il reste suffisamment longtemps) tout nombre rationnel spécifique (non nul) précisément une fois sur la liste entière
- Contient un nombre illimité d'emplacements vides (entrées de la liste qui sont inutilement définies à 0)
- Avoir une proportion d'emplacements vides qui approche une limite de 100%
- Pour chaque entier positif N, avoir un nombre infini de places avec N emplacements vides consécutifs
Le défi
Votre défi est d'écrire ce programme le plus court possible qui produira une liste spéciale avec les règles suivantes:
- Toutes les entrées dont l'index n'est pas un nombre carré doivent être définies sur zéro. Ainsi, la première entrée sera différente de zéro, la deuxième et la troisième seront nulles, la quatrième sera différente de zéro, etc.
- Tous les nombres rationnels se présenteront sous la forme d'une fraction impropre (telle que 4/5 ou 144/13) qui a été simplifiée. L'exception est les zéros, qui seront tout simplement
0
. - Tous les nombres rationnels (positifs et négatifs) devraient éventuellement apparaître dans la liste si votre programme fonctionne assez longtemps et avec suffisamment de mémoire. Pour tout nombre rationnel particulier, le temps requis peut être un temps arbitrairement grand, mais toujours fini.
- S'il est exécuté pendant une durée infinie, aucun nombre rationnel non nul ne doit jamais apparaître deux fois.
La règle 3 permet une certaine variation, car il existe un nombre infini de différentes sorties légales possibles.
La sortie sera un flux de lignes. Chaque ligne sera de la forme générale 5: 2/3
où le premier numéro est le numéro d'entrée, suivi du numéro rationnel. Notez que ce 1: 0
sera toujours la première ligne de sortie.
Exemple d'extrait de sortie:
1: 1/1
2: 0
3: 0
4: 2/1
5: 0
6: 0
7: 0
8: 0
9: -2/1
10: 0
etc...
Règles, règlements et notes
C'est le golf de code. Les règles de golf à code standard s'appliquent. De plus, en raison de la variation autorisée dans la sortie, vous devez au moins montrer pourquoi vous pensez que votre liste contiendra tous les nombres rationnels possibles une seule fois et que votre solution est correcte.
EDIT: Étant donné que les nombres premiers ont distrait du défi, je le change en nombres carrés. Cela atteint le même objectif et raccourcit également les solutions.
1: 0
sera toujours la première ligne de sortie. - Cela contredit votre exemple et n'a pas non plus de sens pour moi.