4, 8, 15, 16, 23, 42
Ecrivez un programme qui affiche cette suite de nombres à l'infini. Cependant, les numéros ne doivent apparaître nulle part dans votre code source.
Ce qui suit n'est pas un programme Java valide pour générer les numéros, car ceux-ci apparaissent dans son code source:
class TheNumbers {
public static void main(String[] args) {
for(int n = 0;;) System.out.println(
n == 4 ? n = 8 :
n == 8 ? n = 15 :
n == 15 ? n = 16 :
n == 16 ? n = 23 :
n == 23 ? n = 42 : (n = 4)
);
}
}
La définition de "Les numéros ne doivent pas figurer dans votre code source" est la suivante:
- Vous ne devez pas utiliser le chiffre 4.
- Vous ne devez pas utiliser le chiffre 8.
- Vous ne devez pas utiliser le chiffre 1 suivi du chiffre 5.
- Vous ne devez pas utiliser le chiffre 1 suivi du chiffre 6.
- Vous ne devez pas utiliser le chiffre 2 suivi du chiffre 3.
Si votre langue ignore certains caractères qui peuvent être placés entre les chiffres, ce n'est pas une substitution valide. Ainsi, par exemple, si votre langue interprète le littéral de la 1_5
manière suivante 15
, cela comptera comme le chiffre 1 suivi du chiffre 5.
Des bases alternatives sont incluses dans la restriction, par exemple:
- Binary 100 ne peut pas être utilisé en remplacement de 4.
- Le 10 octal ne peut remplacer le 8.
- La valeur hexadécimale F ne peut pas remplacer 15.
Par conséquent, ce qui suit est un programme Java valide (mais pas très inspiré) pour générer The Numbers car The Numbers n'apparaît pas dans son code source:
class TheNumbers {
public static void main(String[] args) {
for(int n = '*';;) {
System.out.println(n -= '&');
System.out.println(n *= 2);
System.out.println(n += 7);
System.out.println(++n);
System.out.println(n += 7);
System.out.println(n += 19);
}
}
}
Notez que dans ce programme, '*'
et '&'
sont substitués aux nombres entiers 42 et 38, sinon les chiffres 4 et 8 apparaissent dans son code source.
La définition de "sort la séquence infiniment" est sujette à interprétation. Ainsi, par exemple, un programme qui génère des glyphes de plus en plus petits jusqu'à ce qu'ils soient "infiniment" petits serait valide.
Félicitations si vous êtes capable de générer la séquence d’une manière qui ne soit pas fondamentalement codée en dur pour chaque nombre.
- Dériver à une formule. Mon impression est qu'il n'y en a pas, mais peut-être qu'il y en a un ou il peut être simulé.
- Correction d'un générateur pseudo-aléatoire pour renvoyer la séquence.
Ceci est un concours de popularité, alors soyez créatif. La réponse avec le plus grand nombre de votes le 26 mars est le gagnant.
la source
This isn't an interesting question, IMHO, since the solution is pretty trivial. Please post in the sandbox next time.
serait bien mieux queThis is a stupid question.
, mais ce n'est que mon opinion personnelle.Réponses:
Java
J'ai décidé d'ajouter une autre entrée car c'est complètement différent de mon premier (qui ressemblait plus à un exemple).
Ce programme calcule la moyenne d'un tableau saisi par l'utilisateur ...
... ou le fait-il?
la source
Python
Edit: Selon la suggestion de nneonneo, le script n’a plus de chiffres.
la source
while True:
pour que votre réponse ne contienne aucun chiffre.while True:
est plus commun.Perl
Il n'y a rien de caché dans le code source. Nan. Si le code ne fonctionne pas, tapez-le
use re "eval";
avant (obligatoire dans Perl 5.18).Explication dans le spoiler.
la source
Brainfuck
Je suis tellement mauvais en art ASCII!
Testez-le ici: http://ideone.com/kh3DYI
la source
Unix C
Il y a beaucoup d'endroits pour trouver des constantes numériques.
la source
C #
la source
a(i)=a(i-1)+a(i-3)+a(i-5)
semble vraiment être une solution plus facileC #
En utilisant le fait que toute séquence de N éléments peut être générée par un polynôme N-1 et en entrant les nombres, cela implique beaucoup de bips et de boops. Pour référence, le polynôme que j'ai dérivé est
J'ai assigné les facteurs aux variables nommées pour les nombres, pour plus de simplicité;)
Première version:
J'ai aimé l'implication de la tension montante car le nombre de BEEP diminue après chaque nombre.
Ensuite, je me suis dit que je pourrais aussi calculer les facteurs en utilisant bip et bip:
Je suis allé un peu à la mer après ça ...
L'utilisation de l'opérateur par défaut en C # pour les types de valeur permet l'initialisation de BEEEP à zéro. De cette façon, aucun littéral numérique n'est utilisé dans le code. L'algorithme de base est le même. mais les facteurs sont calculés en ligne.
la source
ré
Vous n'êtes pas autorisé à utiliser les chiffres 4, 8, 15, 16, 23 ou 42 dans mon code? Pas de problème, alors je n'utiliserai pas de chiffres du tout!
la source
Javascript + HTML
Anti-golf!
L'
<pre>
élément affiche un numéro dans la séquence. Il contient également tout le code nécessaire pour passer au numéro suivant de la séquence. Donc, le<pre>
est évalué, ce qui fait que le texte de la<pre>
mise à jour ressemble au numéro suivant dans la séquence. Ce processus se répète indéfiniment.Ici c'est en action!
la source
C
Mettez vos lunettes de strabisme sur :-)
la source
4
s et deux8
s ici.Haskell, 1 LoC
J'ai décidé de choisir une doublure lisible pour montrer à quel point Haskell est génial. En outre, j'ai décidé d'éviter tous les chiffres, juste au cas où.
Grâce à une évaluation paresseuse intégrée, Haskell peut manipuler (carte, diviser, joindre, filtrer ...) des listes infiniment longues. Il a même plusieurs composants intégrés pour les créer. Puisqu'une chaîne est juste une liste de caractères, les chaînes infiniment longues ne sont pas non plus un mystère pour Haskell.
la source
fromEnum
semble plusData.Char.ord
Mathematica
Nous pouvons répondre à la question en nous concentrant sur les dénominateurs partiels répétés de la fraction périodique continue montrée ci-dessous. Ils sont ce dont nous avons besoin.
Après tout, ils constituent la séquence non-terminale que nous essayons de produire: 4, 8, 15, 16, 23, 42, 4, 8, 15, 16, 23, 42 ...
Dans Mathematica, on obtient l' irrationnel quadratique correspondant à la fraction continuée périodique en
où le 0 fait référence à la partie entière implicite.
Nous pouvons vérifier en inversant l'opération:
Les 4 et 8 enfreignent l'une des règles du défi. La sous
15
- chaîne est une violation supplémentaire. Nous pouvons reformater l'irrationnel quadratique pour satisfaire les règles.Maintenant, nous saisissons la séquence d'intérêt:
Et imprimez la liste pour toujours…
la source
16
fraction pendant que je tapais un commentaire à ce sujet.C / C ++
En utilisant uniquement les caractères
L
,O
,S
et àT
plusieurs reprises dans cet ordre:la source
Java
Je ne trouve pas de motif dans cette séquence. S'il n'y a pas de motif reconnaissable, nous pourrions aussi bien rassembler un groupe de petits nombres premiers, les mettre dans le RNG intégré de Java et les appeler tous les jours. Je ne vois pas comment cela pourrait mal tourner, mais encore une fois, je suis optimiste :)
la source
while(true)
: ideone.com/1xaPdOBash one-liner
Saut de ligne ajouté pour plus de lisibilité. Il utilise le fait que ce sont les six premiers numéros de la séquence OEIS A130826 .
la source
awk -F"[ ,]" '/%S/ {for (i=3;i<=9;i++) printf $i" "}'
verscurl
.yes
et supprimer la redirection vers/dev/null
aveccurl -s
. Quelque chose commeyes $(curl -s "https://oeis.org/search?q=id:A$((130726+100))&t=text" | awk -F"[ ,]" '/%S/ {for (i=3;i<9;i++) printf $i" "}')
yes
etcurl -s
- j'ai simplement ajouté ceci sans vergogne à ma réponse. :-)C n'utilisant aucun nombre ni aucune valeur de caractère
la source
J'aime l'idée d'utiliser la séquence
comme dans cette réponse . Trouvé dans la recherche OEIS sous la séquence A122115 .
Si nous suivons la séquence en sens inverse, nous trouverons un quintuple d’initialisation convenable qui ne contient pas 4, 8, 15, 16 ou 23.
Python3:
la source
JavaScript
Pas de chiffres du tout est un bon coup. Mais plutôt que d'imprimer la séquence une fois par passage dans la boucle, n'imprimez qu'un numéro par passage.
La partie inférieure de la chaîne code les numéros à imprimer et la partie supérieure de la chaîne code le caractère suivant à rechercher. Lorsque les deux parties se rencontrent (une seule
F
), les codes réinitialisent le cycle.la source
Python
Opérateurs binaires et quelques mathématiques simples.
la source
Rubis
Génère les Nombres en incorporant la séquence également mystique 0,, 9, 0, 36, 6, 6, 63 ;
Il ne peut en résulter aucun bien.
la source
C (
5450 caractères)Je poste une réponse au golf parce que jouer au golf le rend amusant.
la source
a=0;
. Le seul effet serait que vous pouvez démarrer la séquence ailleurs que 4 (probablement 8). Quoi qu'il en soit, cela va gâcher la séquence en cas dea
débordement. C'est un comportement techniquement indéfini, mais le résultat probable est que vous allez imprimer des ordures la moitié du temps.for
n'aide pas s'il n'y a pas d'initialisation.for(;;)
est le même nombre de caractères quewhile()
. J'ai interprété les règles de sorte que les nouvelles lignes doivent être là ... Mais je pourrais utiliser la récursion de la queue avec ...Haskell
http://ideone.com/erQfcd
Edit: Ce que j'ai utilisé pour générer les coefficients: https://gist.github.com/ion1/9578025
Edit: J'ai vraiment aimé le programme d'agrif et j'ai fini par écrire un équivalent de Haskell tout en le découvrant. J'ai choisi une base différente pour le nombre magique.
http://ideone.com/kzL6AK
Edit: J'ai aussi aimé son deuxième programme et j'ai fini par écrire une implémentation Haskell d'irrationnels quadratiques ;-). En utilisant la bibliothèque et le numéro magique d'agrif, ce programme imprimera la séquence.
Voici comment on pourrait rechercher le nombre magique à l'aide de la bibliothèque:
La valeur imprimée représente le nombre
(−644047 + 1 √424477224534)/30815
. Tout ce que vous avez à faire est de trouver des facteurs qui éliminent les séquences de chiffres non autorisées dans les nombres sans modifier la valeur de l'expression.la source
C #
J'ai trouvé la graine après avoir écouté une station de radio lors d'un vol au-dessus du Pacifique.
la source
Python
Alors que beaucoup de gens utilisaient des modèles issus d'OEIS, j'ai décidé de créer mon propre ensemble de fonctions pour représenter les nombres.
La première fonction que j'ai créée était périodique (). C'est une fonction qui répète tous les six nombres en utilisant les propriétés cycliques des fonctions trig. Ça va comme ça:
Ensuite, je crée polynôme (). Cela utilise le polynôme suivant:
(Dans mon code, certains des coefficients sont représentés sous forme de sommes car ils contiennent les nombres perdus dans l'un de leurs chiffres.)
Ce polynôme convertit la sortie de périodique Period () en son propre nombre perdu, comme ceci:
En augmentant constamment et en passant par les deux fonctions, les nombres perdus se répètent à l'infini.
(Remarque: j’utilise beaucoup float () dans le code. C’est pourquoi Python effectue la division en virgule flottante au lieu de dire 2/3 = 0.)
la source
4
danspolynomial
.Emacs Lisp 73 caractères
Le meilleur moyen de boucler pour toujours? Une liste cyclique!
Mais attendez, il y a plus!
? \ ^ D est le bon moyen d’insérer le caractère pour EOT, cependant si je ne faisais que soumettre un fichier, je n’aurais pas besoin du littéral "\ ^ D", je pourrais simplement insérer un '?' suivi d'un caractère EOT réel, ramenant ainsi le nombre réel de caractères nécessaires à: 63
Modifier
J'ai travaillé sur "gel" qui n'est pas encore un langage réel, mais qui est essentiellement une série de macros emacs lisp pour le golf de code. En "gel" ce serait la solution:
et sans attendre:
44 caractères avec une belle entrée de caractère. Serait 34 si ce n'était pas une soumission Web.
la source
Julia
En recherchant un moment, j'ai trouvé un moyen mathématique d'exprimer la séquence par d'autres séquences sans utiliser aucun des nombres (ou des manières délicates de les utiliser):
Sortie:
la source
C ++
Un langage propre comme C ++ peut vous permettre de présenter votre source de manière lisible et nette, et présente l'avantage d'être facile à copier à la main avec un minimum d'ambiguïté.
Ici, la solution est atteinte en utilisant uniquement le nombre 1.
Test: http://ideone.com/fuOdem
la source
Scheme (Guile)
http://ideone.com/QBzuBC
On peut soutenir que cela enfreint la règle "ne pas coder les nombres dans d'autres bases", mais je pense que c'est assez obscur pour que cela ne compte pas. Comme preuve de cette obscurité, ces deux nombres magiques en base 51 sont:
Edit : Même astuce, représentation différente. En fait, j'aime davantage celui-ci, car il ne dépend pas d'une base choisie arbitrairement. Cependant, cela nécessite une implémentation de schéma avec une prise en charge de précision infinie pour les irrationnels quadratiques, qui (AFAIK) n'existent pas. Vous pouvez toutefois l'implémenter dans quelque chose comme Mathematica.
la source
PHP
Je pensais qu'il était temps que quelqu'un soumette une réponse php, pas la meilleure mais amusante de toute façon
les Ahs sont les hurlements des passagers alors que l'avion s'écrase
la source
Perl
la source