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.
This isn't an interesting question, IMHO, since the solution is pretty trivial. Please post in the sandbox next time.
serait bien mieux que This is a stupid question.
, mais ce n'est que mon opinion personnelle.