Mein Chef * versteht nicht, warum ihre Programmierer negativ auf Benutzer reagieren, die die Programmanforderungen ändern. Hilf ihr zu verstehen! Erstellen Sie bei jeder Antwort eine neue Anforderung. Schreiben Sie dann ein Programm / eine Funktion, die diese Anforderung und alle vorherigen Anforderungen in einer neuen Programmiersprache löst.
Beispiele
Benutzer 1 gibt die erste Antwort bekannt. Er gibt an, dass das Programm "Hallo Welt" ausgeben muss. Er erstellt ein Programm in Java, das "Hallo Welt" ausgibt.
Benutzer 2 gibt die zweite Antwort bekannt. Sie gibt an, dass das Programm die Eingabe von n akzeptieren und die n- te Primzahl ausgeben muss , bis zur maximalen Anzahl der Sprachen. Sie erstellt ein Programm in C ++, das Eingabe n akzeptiert und die n- te Primzahl ausgibt und "Hallo Welt" ausgibt. Sie hätte kein Programm in Java erstellen können.
Benutzer 3 gibt die dritte Antwort bekannt. Er gibt an, dass die Programmquelle den Text "Hallo" nicht enthalten darf. Er erstellt eine Funktion in Python, die Eingabe n akzeptiert und die n- te Primzahl und "Hallo Welt" ausgibt . ohne den Text "Hallo" in seiner Quelle zu verwenden. Er hätte kein Programm in Java oder C ++ erstellen können.
Antwortformat
#Answer # - <language name> [version, if pertinent]
Requirement: <rule>.
<code>
[explanations, encoding, TIO link, etc.]
Antwortregeln
Die Antwort muss dem obigen Format oder ähnlichem entsprechen.
Die Antwort kann ein Programm oder eine Funktion sein.
Die Antwort muss alle Anforderungen bis einschließlich der aktuellen Antwort erfüllen.
Derselbe Benutzer darf nicht zwei Antworten hintereinander posten.
Wenn zwei Antworten mit derselben Nummer gepostet werden, sollte die später gepostete gelöscht werden.
Bearbeiten Sie Ihre Anforderung nicht, es sei denn, Sie haben sich schlecht geschlagen und es wurden keine anderen Antworten gepostet.
Wenn Ihre Antwort nicht mit Ihrer Regel und allen anderen Regeln übereinstimmt, ist sie ungültig. Versuchen Sie, das Problem zu beheben, bevor eine andere Person die nächste Antwort veröffentlicht.
Verschiedene Versionen derselben Sprache zählen nur dann als verschiedene Sprachen, wenn sich das Programm oder die Funktion, die in einer der beiden Versionen erstellt wurden, in der anderen Version anders verhält.
Die Antwort akzeptiert möglicherweise keine nicht erforderlichen Eingaben und gibt möglicherweise nur die erforderlichen Leerzeichen aus. Zwar muss das Programm hinter den Kulissen alle "verborgenen" (für den Benutzer) Anforderungen erfüllen, es kann jedoch alles tun, was Sie möchten, insbesondere, wenn Sie eine Ausführungszeitanforderung erfüllen müssen.
Anforderungsregeln
Die Anforderung muss nur eine Anforderung angeben. Diese Anforderung kann bedingt sein, und wenn diese Anforderung eine Eingabe und / oder eine Ausgabe erfordert, kann dies eingeschlossen sein.
Die Anforderung darf frühere Anforderungen nicht entfernen, ändern oder in Konflikt mit ihnen stehen, kann jedoch eine erweitern (angeben, welche).
Wenn die Anforderung die Quelle einschränkt (Quelle eingeschränkt) ) oder erfordert Text in der Quelle, kann es nur eine einzelne Zeichenfolge (zB entfernen
0
,Hello
) oder ein einzelnes Zeichen erfordern.Die Anforderung kann nicht erfordern, dass die Quelle unter 100 Byte liegt, eine bestimmte Codierung erfordert oder an und für sich die Mehrheit der gebräuchlichen Sprachen ausschließt.
Die Anforderung darf die Quelle nicht zwingen, einem bestimmten Muster zu entsprechen (z. B. jede Zeile mit einem bestimmten Zeichen zu beginnen oder (@Conor) auf einen bestimmten Wert zu haschen), der nicht in der eingeschränkten Quelle angegeben ist.
Dies ist eine Verkettung der Antworten, sodass alle Antworten auf vorherigen Antworten aufbauen. Ich und vielleicht andere werden versuchen, eine Liste aller Anforderungen zu führen. Um die Antworten in der richtigen Reihenfolge anzuzeigen, können Sie nach den ältesten sortieren. Um die neueste Antwort anzuzeigen, sortieren Sie nach der ältesten und navigieren Sie zum Ende der Liste.
Wie man gewinnt (geändert für Hold Vote):
Wenn zwei Wochen lang keine Antwort eingegangen ist, ist die Herausforderung beendet und die Punktzahl wird berechnet. Die Punktzahl wird berechnet, indem die Gesamtzahl der Antworten jedes Benutzers summiert wird. Die Beiträge werden jedoch danach gewichtet, wie weit sie in der Kette liegen (da die späteren Beiträge höhere Anforderungen haben, sind sie schwieriger).
Pseudocode:
for each answer in user.Answers {
score += 1 + (answer.number / 100)
}
Beispiel:
Sally hat drei Antworten. Sie hat Antwort 5, Antwort 7 und Antwort 20 gepostet.
Ihre Punktzahl wird sein 1.05 + 1.07 + 1.2 = 3.32
. Wenn es sich um eine gerade Summe von Antworten handelte, würde ihre Punktzahl 3 betragen, aber die Gewichtung der Kettentiefe belohnt schwierigere Antworten.
Anfangen:
Hier ist die erste Anforderung meines Chefs *:
Voraussetzung 0: Das Programm muss vor allem anderen 0 ausgeben.
* fiktiv
Liste der Anforderungen und Sprachen
Beachten Sie, dass dies möglicherweise nicht mehr aktuell ist. Sehen Sie sich die zuletzt veröffentlichte Antwort unmittelbar vor dem Senden Ihrer Antwort an, um sicherzustellen, dass Sie alle Anforderungen erfüllen. Es tut mir sehr leid, wenn Sie ein exquisites Programm erstellen, das nur von jemandem geklaut werden kann. Wenn Sie es trotzdem wirklich veröffentlichen möchten, geben Sie an, dass keine Konkurrenz besteht.
Full (aber vielleicht kein Strom) Voraussetzung: enthalten , kann nicht
0
,*
oder]
im Quellcode und kann nicht ein Join-on-Newline builtin verwenden. Ausgänge0
dann eine nicht negative Ganzzahleingaben
und gibt eine neue Zeile gefolgt von der 0-indiziertenn
Fibonacci-Zahl aus (kann1
indiziert werden), gefolgt von einer neuen Zeile, gefolgt von derselben Eingabe n im Quadrat, gefolgt von einer neuen Zeile, gefolgt von einern
Multiplikation durch eine neue Eingabem
, durch eine neue Zeile, gefolgt von10^B
, woB
die Anzahl der Bytes in den Quellcode ist, durch eine neue Zeile folgt, gefolgt von dern
th0
-indexed (kann auch sein ,1
Primzahl ist , gefolgt von einem Zeilenvorschub -indexed), gefolgt vom größten gemeinsamen Teiler von n und m.0: Das Programm muss
0
vor allem anderen ausgegeben werden . Sprache: N / A
1: Die Programmquelle kann nicht enthalten0
. Sprache: 05AB1E
2: Das Programm verwendet eine nicht negative Ganzzahleingaben
und gibt eine neue Zeile gefolgt von der0
-indexierten n-ten Fibonacci-Zahl aus (kann1
indexiert sein). Sprache: dc
3: Das Programm gibt eine neue Zeile aus, gefolgt von derselben Eingabe imn
Quadrat. ist die Anzahl der Bytes im Quellcode. Sprache: Mathematica 7: Das Programm gibt eine neue Zeile aus, gefolgt von der th- indizierten (möglicherweise auch -indizierten) Primzahl. Sprache: JavaScript (ES6)Sprache: J
4: Das Programm gibt eine neue Zeile aus, gefolgtn
von einer neuen Eingabem
. Sprache: Ohm
5: Das Programm darf nicht enthalten*
(ASCII Code 6: Das Programm gibt eine neue Zeile aus, gefolgt von , wo0x2A
) enthalten. Sprache: Python 310^B
B
n
0
1
8: Das Programm verwendet keine eingebauten Join-on-Newlines, kann jedoch jede andere eingebaute Join-Funktion verwenden. Sprache: Jelly
9: Das Programm gibt eine neue Zeile gefolgt vom größten gemeinsamen Teiler von n und m aus. Sprache: Scala
10: Das Programm kann nicht enthalten]
. Sprache: Pyth
Aktuelle Ergebnisse (sortiert nach erstem Beitrag)
Okx : 1.01
R. Kap : 2.09
Conor O'Brien : 1.03
Nick Clifford : 1.04
Eric Rose : 1.05
Greg Martin : 1.06
Erik der Outgolfer : 2.18
math_junkie : 1.09
quelle
Antworten:
Antwort 10 - Pyth
Voraussetzung: Nimmt zwei Eingänge
n
(> = 0) undm
. Ausgänge0
ohne die Verwendung von0
,*
oder]
irgendwo im Quellcode und ohne builtins zum Verbinden von auf Zeilenumbrüche. Gibt dann ein Neue - Zeile , gefolgt von der1
-indexed nth Fibonacci - Zahl (werden0
indexiert), durch eine neue Zeile, gefolgt vonn
quadriert, durch eine neue Zeile, gefolgt vonn
multipliziert mitm
, durch eine neue Zeile, gefolgt von ,10^B
woB
die Anzahl der Bytes , im Quelltext, gefolgt von einer Newline und dern
th-1
indizierten (möglicherweise auch0
-indizierten) Primzahl, und schließlich gefolgt von einer Newline und dem Greatest Common Divisor von n und m.Online-Dolmetscher
quelle
j
statt verwendenjb
, da ich dann einen eingebauten Join-on-Newlines-Befehl verwende.Antwort 1 - 05AB1E
Voraussetzung: Druckt
0
... ohne ein0
im Quellcodequelle
Antwort 3 - J
Voraussetzung: Gibt
0
ohne0
im Quellcode aus, nimmt dann eine nicht negative Ganzzahleingaben
und gibt eine neue Zeile gefolgt von der0
-indiziertenn
'ten Fibonacci-Zahl (kann1
indiziert sein) aus, gefolgt von einer neuen Zeile, gefolgt von derselben Eingaben
Quadrat.Probieren Sie es online!
quelle
Antwort 4 - Ohm
Voraussetzung: Gibt
0
ohne0
im Quellcode aus, nimmt dann eine nicht negative Ganzzahleingaben
und gibt eine neue Zeile aus, gefolgt von der 0-indiziertenn
Fibonacci-Zahl (kann 1-indiziert sein), gefolgt von einer neuen Zeile, gefolgt von derselben Eingabe n im Quadrat. gefolgt von einer neuen Zeile, gefolgt vonn
multipliziert mit einer neuen Eingabem
.quelle
Antwort 2 - Gleichstrom
Voraussetzung: Gibt
0
ohne0
im Quellcode aus, nimmt dann eine nicht negative Ganzzahleingaben
und gibt eine neue Zeile gefolgt von der0
-indiziertenn
'ten Fibonacci-Zahl aus (kann sein)1
indiziert sein).Probieren Sie es online!
quelle
Antwort 5 - Python 3
Anforderungen: Gibt 0 ohne 0 im Quellcode aus, nimmt dann eine nicht negative Ganzzahleingabe n und gibt eine neue Zeile aus, gefolgt von der 0-indizierten n-ten Fibonacci-Zahl (kann 1-indiziert sein), gefolgt von einer neuen Zeile, gefolgt von derselben Eingabe n quadriert, gefolgt von einer neuen Zeile, gefolgt von n multipliziert mit einer neuen Eingabe m. Verwenden Sie nicht das Zeichen
*
ASCII-Code 0x2A.quelle
Antwort 6 - Mathematica
Voraussetzung: Gibt 0 ohne 0 oder * im Quellcode aus, nimmt dann eine nicht negative Ganzzahleingabe n und gibt eine neue Zeile gefolgt von der 0-indizierten n-ten Fibonacci-Zahl (kann 1-indiziert sein) aus, gefolgt von einer neuen Zeile, gefolgt von der Gleiche Eingabe n im Quadrat, gefolgt von einer neuen Zeile, gefolgt von n multipliziert mit einer neuen Eingabe m, gefolgt von einer neuen Zeile, gefolgt von 10 ^ B, wobei B die Anzahl der Bytes im Quellcode ist.
quelle
Antwort 7 - JavaScript (ES6)
Voraussetzung: Eine Funktion, die zwei Eingaben, eine nicht negative Ganzzahl
n
und eine beliebige Zahl , akzeptiertm
und eine Zeichenfolge zurückgibt, die0
ohne Verwendung einer0
beliebigen Stelle im Quellcode eine neue Zeile gefolgt von der0
indiziertenn
Fibonacci-Zahl (kann1
indiziert sein) enthält durch eine neue Zeile, gefolgt von einemn
Quadrat, gefolgt von einer neuen Zeile, gefolgt vonn
multipliziert mitm
ohne die Verwendung von*
überall im Quellcode, durch eine neue Zeile, gefolgt von10^B
woB
die Anzahl von Bytes in dem Quellcode, und schließlich gefolgt von einer newline und dien
th-0
indizierte (möglicherweise auch1
-indizierte) Primzahl.Testschnipsel
Code-Snippet anzeigen
quelle
String.fromCharCode(48)
auf1-1
. Nicht, dass es wirklich wichtig wäre ;-) (Außerdem gibt es später zwei Nullen im Quellcode, die Sie auf die gleiche WeiseAntwort 8 - Gelee
Voraussetzung: Eine Funktion, die zwei Eingaben akzeptiert, eine nicht negative ganze Zahl
n
und eine beliebige Zahlm
und , akzeptiert eine Zeichenfolge zurückgibt, die0
ohne Verwendung einer0
beliebigen Stelle im Quellcode eine neue Zeile gefolgt von der0
indiziertenn
Fibonacci-Zahl (kann1
indiziert sein) enthält durch eine neue Zeile, gefolgt vonn
Quadrat, durch eine neue Zeile, gefolgt vonn
multipliziert mit ,m
ohne die Verwendung von*
überall im Quellcode, durch eine neue Zeile, gefolgt von10^B
woB
die Anzahl von Bytes in dem Quellcode, und schließlich gefolgt von einer newline und dern
th0
indizierte (kann auch sein1
-indexierte) Primzahl. Es sind keine eingebauten Elemente für den Beitritt zu Zeilenumbrüchen zulässig, aber der Beitritt zu eingebauten Elementen ist weiterhin zulässig.Probieren Sie es online!
quelle
Antwort 9 - Scala
Voraussetzungen : Nimmt zwei Eingänge
n
(> = 0) undm
. Ausgaben0
ohne die Verwendung von0
oder*
irgendwo im Quellcode und ohne eingebaute Funktionen zum Verbinden von Zeilenumbrüchen. Gibt dann ein Neue - Zeile , gefolgt von der1
-indexed nth Fibonacci - Zahl (werden0
indexiert), durch eine neue Zeile, gefolgt vonn
quadriert, durch eine neue Zeile, gefolgt vonn
multipliziert mitm
, durch eine neue Zeile, gefolgt von ,10^B
woB
die Anzahl der Bytes , im Quelltext, gefolgt von einer Newline und dern
th-1
indizierten (möglicherweise auch0
-indizierten) Primzahl, und schließlich gefolgt von einer Newline und dem Greatest Common Divisor von n und m.Probieren Sie es hier aus
quelle