4, 8, 15, 16, 23, 42
Schreiben Sie ein Programm, das diese Zahlenfolge unendlich ausgibt. Die Zahlen dürfen jedoch nirgendwo in Ihrem Quellcode vorkommen.
Folgendes ist kein gültiges Java-Programm zur Ausgabe von The Numbers, da The Numbers im Quellcode enthalten sind:
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)
);
}
}
Die Definition von "Die Zahlen dürfen nicht in Ihrem Quellcode vorkommen" lautet wie folgt:
- Sie dürfen die Ziffer 4 nicht verwenden.
- Sie dürfen die Ziffer 8 nicht verwenden.
- Sie dürfen nicht die Ziffer 1 gefolgt von der Ziffer 5 verwenden.
- Sie dürfen nicht die Ziffer 1 gefolgt von der Ziffer 6 verwenden.
- Sie dürfen nicht die Ziffer 2 gefolgt von der Ziffer 3 verwenden.
Wenn Ihre Sprache bestimmte Zeichen ignoriert, die zwischen den Ziffern stehen können, ist dies keine gültige Ersetzung. Wenn Ihre Sprache beispielsweise das Literal 1_5
als interpretiert 15
, zählt dies als die Ziffer 1, gefolgt von der Ziffer 5.
Alternative Basen sind in der Einschränkung enthalten, zum Beispiel:
- Binär 100 kann nicht als Ersatz für 4 verwendet werden.
- Oktal 10 kann nicht als Ersatz für 8 verwendet werden.
- Hexadezimal F kann nicht als Ersatz für 15 verwendet werden.
Daher ist Folgendes ein gültiges (aber nicht sehr inspiriertes) Java-Programm zur Ausgabe von The Numbers, da The Numbers nicht im Quellcode enthalten sind:
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);
}
}
}
Beachten Sie, dass in diesem Programm '*'
und '&'
für die ganzen Zahlen 42 und 38 ersetzt werden, da sonst die Ziffern 4 und 8 in seinem Quellcode erscheinen würden.
Die Definition von "gibt die Sequenz unendlich aus" kann interpretiert werden. So wäre beispielsweise ein Programm gültig, das Glyphen ausgibt, die kleiner werden, bis sie "unendlich" klein sind.
Ein dickes Lob, wenn Sie in der Lage sind, die Sequenz auf eine Weise zu generieren, die im Grunde nicht jede Zahl hart codiert.
- Ableiten zu einer Formel. Mein Eindruck ist, dass es keinen gibt, aber vielleicht gibt es ihn oder er kann gefälscht werden.
- Behebung eines Pseudozufallsgenerators zur Rückgabe der Sequenz.
Dies ist ein Beliebtheitswettbewerb, also sei kreativ. Die Antwort mit den meisten Stimmen am 26. März ist der Gewinner.
This isn't an interesting question, IMHO, since the solution is pretty trivial. Please post in the sandbox next time.
wäre viel besser als This is a stupid question.
, aber das ist nur meine persönliche Meinung.