Avertissement: Ceci est fortement inspiré par "Polyglot l'OEIS!" mais résout le problème qui a conduit à la fermeture (voir la section sortie) et a été republié pour ne pas invalider les réponses.
introduction
Nous connaissons et aimons tous l' encyclopédie en ligne des séquences entières ( OEIS ). Et si nous faisions une version hors ligne des séquences intéressantes? Eh bien, ce serait un peu trop facile, n'est-ce pas et comment choisiriez-vous une séquence avec notre interface standard!? Non. Nous avons besoin d'une solution plus simple à cela. Un polyglotte!
Contribution
Votre entrée sera un entier non négatif n
.
Sortie
Votre sortie sera soit
- La
n
-ième entrée d'une séquence OEIS OU - Les premières
n
entrées d'une séquence OEIS.
Vous pouvez considérer que l'index est basé sur 1 ou sur base 0 selon vos préférences.
Pour ne pas faire de cette question un doublon des séquences constantes polyvalentes de l'imprimante entière sont interdites. Cela devrait également augmenter le niveau de difficulté des soumissions et éviter les solutions "ennuyeuses";)
Une séquence n'est pas constante s'il existe deux membres de séquence qui sont inégaux.
Uhm, alors où est le défi?
Vous devez polyglotter la fonctionnalité ci-dessus. C'est-à-dire que si vous prenez en charge les langues A, B et C, toutes doivent implémenter différentes séquences OEIS. Le choix de la séquence n'est pas limité, sauf que vous en avez besoin de différentes pour toutes les langues.
Autrement dit, si vous exécutez le programme fourni dans la langue A, alors la séquence X doit être générée, si vous exécutez le programme fourni dans la langue B, alors la séquence Y doit être générée (avec X! = Y) et si vous exécutez le programme fourni en langage C, alors la séquence Z sera générée (avec X! = Z && Y! = Z).
Qui gagne?
La réponse avec le plus de paires séquence / langue gagne. Le premier bris d'égalité est la taille du code (en octets), la valeur inférieure étant meilleure. Le deuxième bris d'égalité est le temps de soumission, le précédent étant meilleur.
Des derniers mots / règles?
- Vous devez déclarer quelle langue générera quelle séquence.
- Les règles d'E / S standard s'appliquent.
- Si différents codages sont utilisés entre les langues, les deux programmes doivent utiliser la même séquence d'octets.
- Révisions Langue (Python 2/3) ne comptent que des langues différentes. Différentes implémentations d'une langue (comme Browser JS vs Node.js) comptent également comme différentes langues.
- Des échappatoires standard s'appliquent.
Réponses:
3 langues (1 octet) - Pyth ( A001477 ), MATL ( A000027 ), Braingolf ( A000217 )
Comment?
Q
fait ce qui suit:En MATL, cela signifie
+ 1
, donc il évalue essentiellement àinput + 1
.En Pyth, cela signifie entrée, donc il ne fait que sortir l'entrée.
Dans Braingolf, c'est la fonction intégrée pour les nombres triangulaires.
Mini-polyglotte
Pyth peut être remplacé par l'un des langages suivants: GolfScript , Pyke , Brachylog ou Brain-Flak .
la source
10 langues, 122 octets
Je peux certainement ajouter un tas plus. 1 indexé sauf indication contraire.
Notez que je ne suis peut-être pas à jour sur les liens TIO lorsque je suis sûr que les modifications les plus récentes n'affectent pas les anciens programmes - vous pouvez les tester si vous le souhaitez, mais en copiant plus de 10 nouveaux liens TIO à chaque fois que je fais un changement devient fatigant après un peu. J'en copie de nouvelles toutes les 5 mises à jour environ.
cQuents v0, A000007
Code pertinent:
#|A=1:0;
#|A
attrape l'entrée et est là pour les commentaires Python.=1
signifie que le premier élément est1
,:0
signifie que les autres le sont0
, génère len
e terme donnén
. cQuents v0 a un bug / fonctionnalité étrange qui, lorsqu'un jeton inattendu mais valide, tel que;
, est lu, entraîne la fin de l'analyse.Essayez-le en ligne!
PingPong, A001478
Code pertinent:
#|A=1:0;~@
Sorties via code de sortie. 0 indexé.
#
saute le caractère suivant.=
ne fait rien ici.1
pousse1
et:
imprime1
vers STDOUT.0
pousse0
.)
ne fait rien.;
pousse l'entrée,~
saute et pousse-n-1
.@
se termine. Le code de sortie est le haut de la pile.Essayez-le en ligne!
axo , A001477
Code pertinent:
}{\
0 indexé.
}
lit et envoie un entier depuis STDIN (nécessite un retour à la ligne pour une raison quelconque),{
imprime le haut de la pile et\
termine le programme. Je ne suis pas sûr de ce que font les personnages précédents, mais rien qui compte dans ce cas.Essayez-le en ligne!
brainfuck, A000027
Code pertinent:
,[.,]
Programme de chat simple de esolangs.org. Sort l'entrée.
Essayez-le en ligne!
> <>, A000030
Code pertinent:
#
...;oi
#
renvoie et retourne à droite, qui le dirige vers la lectureio;
, qui produit le premier caractère de l'entrée. 0 indexé.Essayez-le en ligne!
Ruby, A023443
Code pertinent:
print (0 and gets.to_i-1
...)
0 indexé. Imprime l'entrée moins 1.
0
est véridique en Ruby, mais falsey en Python.Essayez-le en ligne!
Python 3, A000578
Code pertinent:
print (0 and gets.to_i-1 or int(input())**(2+(1/2>0)));quit()
Arraché du post original d'HyperNeutrino, mais c'est un polyglotte assez bien connu.
quit()
termine le programme.Essayez-le en ligne!
Python 2, A000290
Code pertinent:
#coding:utf-8
est requis pour que le charbon de bois fonctionne. Également arraché du message original d'HyperNeutrino.quit()
termine le programme.Essayez-le en ligne!
Charbon de bois, A001489
Code pertinent:
⎚I±N»
0 indexé.
⎚
efface la console (Charcoal imprime ASCII tel quel) etI±N
imprime le négatif de l'entrée.»
est une erreur d'analyse et met fin au programme.Merci à ASCII uniquement pour l'aide au chat.
Essayez-le en ligne!
Cardinal, A020725
Code pertinent:
Ajoute 1 à l'entrée et écrase tous les autres pointeurs.
Essayez-le en ligne!
la source
5 langues ( 05AB1E , en fait , CJam , Jelly , MATL ), 7 octets
Essayez-le en ligne!:
la source
3 langues: Proton, A000583 ; Python 3, A000578 ; Python 2, A000290
Proton , 49 octets
Essayez-le en ligne!
Python 3 , 49 octets
Essayez-le en ligne!
Python 2 , 49 octets
Essayez-le en ligne!
Explication
Proton n'a pas de
'''...'''
chaînes,(''',''')
devient donc('' ',' '')
, ce qui ne cause pas de problèmes. Il évalue''
, faisant(''',''')!=','
évaluerTrue
.Python n'ont ces chaînes, et donc
(''',''')
est seulement','
donc(''',''')!=','
Equivaut àFalse
.Python 2 utilise la division au sol pour les entiers, donc
1/2>0
est faux dans Python 2 et vrai dans Python 3.la source
1//1;print(int(input())**(2+(1/2>0)+((''',''')!=',')));quit()
puis ajoutez des langues comme JavaScript par la suite5 langues, 107 octets
Perl: A000035
En utilisant
=
comme délimiteur pour less///
moyens, nous pouvons facilement exclure le code que nous ne voulons pas, et en utilisant)
comme délimiteur pour lesq{}
moyens aprèsprint
ingq
dans toutes les autres langues, nous pouvons simplement travailler<>
directement, sans souci.Essayez-le en ligne!
Rubis: A001477
En Ruby,
//
est en fait/
(diviser par)/.../
(correspondance regex), donc tant que la regex est terminée et convertie en nombre, nous pouvons la diviser en toute sécurité.__id__
est plus court que.to_s.ord
, alors nous contenons juste le reste du code que nous ne voulons pas dans'
s, misq
àgets
etprint
avec tous les autres.Essayez-le en ligne!
Python 2: A005843
Utiliser l'astuce standard pour différencier 2 de 3 et enfermer des choses que nous ne voulons pas
"""
et des commentaires.Essayez-le en ligne!
Python 3: A008585
Essayez-le en ligne!
JavaScript (navigateur ES6): A000027
Assez simple pour JS, il s'est avéré plus facile de ne pas réutiliser l'existant
print
et d'opter pour SpiderMonkey, mais cela pourrait également être possible.la source
6 langues: Cubiquement 5/6/7/8/9/10,
444032 octetsBiffé 44 est toujours régulier 44; (
Cela imprime:
Explication:
Essayez-le en ligne! (Cubiquement 6x6x6)
la source