Utilisation des 74 caractères de la chaîne capsule temporelle 2016
H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{%
écrire N extraits de code tous dans la même langue où:
- Le 1er extrait de code sort
1
. - Le 2e extrait de code sort
2
. - Le 3e extrait de code sort
3
. - ... etc. ...
- Le Nième extrait de code sort
N
(le nombre, pas la lettre littérale).
Un "extrait de code" est défini comme l'un de ces éléments:
- Un programme complet sans entrée requise qui génère le nombre normalement .
- Une fonction sans arguments requis qui génère / renvoie le nombre normalement .
- Une expression REPL qui évalue le nombre.
(Vous pouvez mélanger et assortir ces trois variantes dans vos N extraits.)
Les caractères que vous êtes autorisé à utiliser dans l'ensemble combiné de N extraits sont précisément les 74 caractères de la capsule temporelle, plus floor(N/2)
des octets "génériques" supplémentaires que vous pouvez utiliser n'importe où.
Par exemple, la capsule temporelle contient trois @
de sorte que dans l'intégralité de vos N extraits, il ne peut y avoir jusqu'à trois @
présents que si vous décidez d'utiliser certains de vos floor(N/2)
octets génériques pour d'autres @
.
Ainsi, sans compter les caractères génériques, l'ensemble combiné de caractères dans vos N extraits doit être un sous-ensemble des 74 caractères de la capsule temporelle. Leur longueur combinée ne peut pas dépasser 74. Vous ne pouvez pas réutiliser des caractères de capsule temporelle ou des octets génériques entre les extraits.
Remarques
Il n'y a pas d'autres limites sur la longueur de l'extrait ou le nombre de caractères génériques pouvant être utilisés par extrait.
Vous devez écrire tous les extraits de 1 à N. Ce n'est pas 0 à N-1, pas k à N + k-1.
Les extraits de code doivent être individuels et non un extrait de code qui génère la liste
1, 2, 3, ..., N
.Les sorties peuvent être des flottants comme
3.0
à la place de3
et vous pouvez utiliser une base autre que décimale si c'est la base naturelle de votre langue . Vous devez utiliser la même base pour tous les extraits.Les caractères génériques sont comptés comme des octets dans le codage de votre langue . Ce sera probablement ASCII mais par exemple, si il
∞
compte comme un octet dans votre codage, vous pouvez l'utiliser comme un seul octet générique.Vous pouvez utiliser des octets génériques pour les caractères multi-octets. par exemple, il
∞
est normalement de trois octets, vous pouvez donc l'utiliser dans un extrait, mais cela vous coûtera trois de vosfloor(N/2)
octets génériques.Les sauts de ligne tels que
\r\n
peuvent être considérés comme un octet.
Exemple
En Python, N = 4 est possible simplement en utilisant le REPL. Il y a des floor(4/2) = 2
caractères génériques.
1
de la capsule temporelle est une expression qui évolue vers1
.2
consiste en un seul caractère générique, à savoir le2
. Evals to2
.3
se compose également d'un seul caractère générique. Evals to3
. Plus de caractères génériques.4
est heureusement dans la capsule temporelle et ça ne fait rien4
.
Ces extraits sont courts et triviaux. Une vraie réponse serait probablement beaucoup plus complexe.
(Cinq et au-delà en Python sont certainement possibles, mais je laisse le soin aux professionnels.)
Notation
La réponse avec le N le plus élevé gagne; c'est-à-dire celui qui gravit les échelons les plus élevés.
En cas d'égalité, la réponse qui a utilisé le moins d'octets génériques l'emporte.
En cas d'égalité, la réponse qui a utilisé le moins de caractères cumulatifs l'emporte.
S'il y a toujours égalité, la réponse précédente l'emporte.
la source
4
un extrait de code valide renvoie 4, dans les anciennes versions de Perl sans REPL?)07
la même chose que7
?-
nin
...Réponses:
CJam , 25 extraits, 12 caractères génériques, 64 octets
Essayez-le en ligne!
Caractères génériques:
Je sens que je dois poster rapidement, avant que Dennis ne me surpasse.
la source
CJam , 23 extraits, 11 caractères génériques, 45 octets
Essayez-le en ligne! | compteur de caractères génériques (ignorez les sauts de ligne)
la source
JavaScript, 10 numéros, 5 caractères génériques
Caractères restants:
!!#$$%&())))*...:=@@@HILOQQQTTZ\^```eefmpy{|||~~~~~~~~~
5/5 caractères bonus utilisés:
37680
Programmes:
1
3
4
4|!``
6
7
8
9
0xA
J'avais espéré que l'une des cordes que je pourrais utiliser
\xAB
serait un nombre, mais malheureusement aucune des combinaisons que j'ai essayées n'en donnerait. Le caractère^
(XOR) serait également intéressant à utiliser, mais je ne vois actuellement aucune opportunité où il pourrait être utilisé pour faire un nombre assez important.Si vous voyez une autre combinaison possible, faites-le moi savoir dans les commentaires.
Edit: Ajouté # 10 grâce à Arnauld
la source
10. 0xA
(en0
étant un nouveau caractère générique accordé pour avoir atteint 10)(Q=!``)|Q
pour 1 pour obtenir un supplément1
quelque part. Je ne sais pas si cela vous aideraPyth, 12 extraits, 20 octets (6 caractères génériques)
Trouvez le premier nombre où la racine (n, n) est vraie, à partir de 1. Sortie: 1
Ne double pas
{}
. Sortie: 2Caractère générique n ° 1. Sortie: 3
Sortie: 4.
Caractère générique n ° 2. Sortie: 5
Caractère générique n ° 3. Sortie: 6
Caractère générique n ° 4. Sortie: 7
Caractère générique n ° 5. Sortie: 8
Sortie: 9
Variable préinitialisée. Sortie: 10
Dix plus pas zéro. Sortie: 11
Caractère générique n ° 6 (
2
). Sortie: 12la source
Octave, 6 chiffres, 3 caractères génériques
J'ai encore
1
,9
et à*
gauche, mais je ne sais pas si cela me aidera beaucoup. Je vais voir ce que je peux faire avec ça :)Pas facile d'obtenir de nombreux numéros lorsque vous n'utilisez pas un Esolang. J'espère pouvoir en obtenir un ou deux de plus, mais je pense que ce sera difficile.
la source
Arrogant , 10 numéros (4 caractères génériques)
Ce sont tous des extraits qui laissent le résultat sur la pile. Vous pouvez le tester dans le interpréteur en ligne en ajoutant
#
à chaque extrait (pour imprimer le numéro)Cette réponse n'est pas encore complète - bien qu'il semble peu probable que j'aille beaucoup plus loin.
la source
05AB1E, 12 numéros, 6 caractères génériques
la source
Hexagonie , 6 numéros, 3 caractères génériques, 23 octets
Essayez-le en ligne!
L'ensemble du sixième programme est composé de caractères génériques.
Le seul vraiment intéressant est
3
. Alors que je pouvais faire cela4(!@
, cela me laisserait sans4
générer5
facilement, alors j'ai opté pour ceci à la place:En raison de la
|
, la)
première ligne est exécutée deux fois, avant que l'IP ne passe dans le coin droit.$
saute le@
, puis\
redirige l'IP à travers)
une troisième fois. L'IP passe dans le coin inférieur gauche,!
imprime le3
et@
termine le programme.Je ne pense pas que plus de 6 extraits soient possibles, car il n'y a que 5 commandes d'impression (
!!!!!
) et 5 commandes qui peuvent être utilisées pour terminer le programme (@@@%:
). Ainsi, après le cinquième extrait, nous avons besoin d'au moins deux caractères génériques par extrait. Par conséquent, même si j'ai réussi à m'en passer6
sans utiliser de caractère générique pour cela, il n'y aurait pas assez de caractères génériques pour aller à l'extrait de code sept.la source
JavaScript, 8 numéros, 4 caractères génériques
Je pourrais réessayer plus tard - je suis en train de perdre des personnages en 2 et 6, quand vous y arrivez.
la source
Befunge-98, 4 extraits, 18 octets, 2 caractères génériques
Caractères restants:
!!!$$%&())))*=ILOQQQTTZ\^`````````eefmpxy{||||~~~~~~~~~
Je doute que d'autres soient possibles, car chaque programme supplémentaire nécessitera une forme de sortie, et tous
.,
sont déjà utilisés. Si je peux trouver un moyen de faire 3 et 5 sans caractère générique, alors c'est possible.Le dernier programme se terminera finalement en raison du remplissage de la pile.
A
etH
sans empreintes digitales chargées se reflétera, et le programme continuera à appuyer sur 9.la source
%
.00%
est valide dans Befunge-98 et donne 0 (ou demande à l'utilisateur le résultat dans Befunge-93.{
peut inverser s'il manque de mémoire; rien n'est dit sur la poussée normale, et tous les interprètes semblent échouer sur MOO, mais les limites de mémoire sont clairement prises en compte dans la spécification de langue.p
personnage, mais cela prendrait un certain travail. Vous pourriez fairee%9
pour obtenir 5, mais vous auriez besoin d'un moyen pour l'imprimer et terminer le programme, doncSmileBASIC, 12 extraits, 5 caractères génériques, 31 octets
J'aurais également pu utiliser une variable au lieu de
.
(les variables commencent à 0) et une variable de chaîne (commeQ$
) au lieu de@Q
Caractères utilisés:
!!!#&*+...1449@AHILQQTem||
Caractères génériques utilisés:
67813
caractères inutilisés:
!!$$%()))):=@@OQTZ\\^`````````efpxy{||~~~~~~~~~
la source