Sie sind der Benutzer: Erstellen Sie die Anforderungen


15

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 (Quelle ) 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 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 Ganzzahleingabe nund gibt eine neue Zeile gefolgt von der 0-indizierten nFibonacci-Zahl aus (kann 1indiziert werden), gefolgt von einer neuen Zeile, gefolgt von derselben Eingabe n im Quadrat, gefolgt von einer neuen Zeile, gefolgt von einer nMultiplikation durch eine neue Eingabe m, durch eine neue Zeile, gefolgt von 10^B, wo Bdie Anzahl der Bytes in den Quellcode ist, durch eine neue Zeile folgt, gefolgt von der nth 0-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 0vor allem anderen ausgegeben werden . Sprache: N / A
1: Die Programmquelle kann nicht enthalten 0. Sprache: 05AB1E
2: Das Programm verwendet eine nicht negative Ganzzahleingabe nund gibt eine neue Zeile gefolgt von der 0-indexierten n-ten Fibonacci-Zahl aus (kann 1indexiert sein). Sprache: dc
3: Das Programm gibt eine neue Zeile aus, gefolgt von derselben Eingabe im nQuadrat. 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, gefolgt nvon einer neuen Eingabe m. Sprache: Ohm
5: Das Programm darf nicht enthalten *(ASCII Code 6: Das Programm gibt eine neue Zeile aus, gefolgt von , wo0x2A ) enthalten. Sprache: Python 3
10^BB
n01
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


3
Warum die letzte Antwort annehmen? Es scheint, als ob Sie gewinnen, wenn Sie eine Anforderung hinzufügen, die niemand erfüllen kann.
xnor

5
Zum Beispiel: "Der MD5-Hash des Programms muss ... sein"
Conor O'Brien

2
Selbst wenn die Regeln halten, um eine Anforderung zu verhindern, die die Kette beendet, denke ich, dass eine "Gewinnbedingung" die Leute dazu ermutigt, fast unmögliche Regeln zu machen, anstatt lustige.
xnor

2
@StephenS Nun, die Leute scheinen nicht zu spielen, um zu gewinnen, also sieht es so aus, als ob mein Anliegen fehl am Platz ist.
xnor

2
Dies sollte 'Scope Creep' heißen
NonlinearFruit

Antworten:


2

Antwort 10 - Pyth

Voraussetzung: Nimmt zwei Eingänge n(> = 0) und m. Ausgänge 0 ohne die Verwendung von0 , *oder ]irgendwo im Quellcode und ohne builtins zum Verbinden von auf Zeilenumbrüche. Gibt dann ein Neue - Zeile , gefolgt von der 1-indexed nth Fibonacci - Zahl (werden 0indexiert), durch eine neue Zeile, gefolgt von nquadriert, durch eine neue Zeile, gefolgt von nmultipliziert mit m, durch eine neue Zeile, gefolgt von , 10^Bwo Bdie Anzahl der Bytes , im Quelltext, gefolgt von einer Newline und der nth- 1indizierten (möglicherweise auch 0-indizierten) Primzahl, und schließlich gefolgt von einer Newline und dem Greatest Common Divisor von n und m.

JU2KE=H2VQ=+Js>2J=+YK=hHW!P_H=hH;jb[ZeJ^Q2sY^T51HiK

Online-Dolmetscher


Ja, das ist auch Golf :-)
Erik der Outgolfer

Außerdem kann ich vor dem Kommentieren nicht einfach jstatt verwenden jb, da ich dann einen eingebauten Join-on-Newlines-Befehl verwende.
Erik der Outgolfer

6

Antwort 1 - 05AB1E

Voraussetzung: Druckt 0... ohne ein 0im Quellcode

¾

4

Antwort 3 - J

echo"+(1-1),(*:,~[:+/@:!&i.-)@".1!:1(3)

Voraussetzung: Gibt 0ohne 0im Quellcode aus, nimmt dann eine nicht negative Ganzzahleingabe nund gibt eine neue Zeile gefolgt von der 0-indizierten n'ten Fibonacci-Zahl (kann 1indiziert sein) aus, gefolgt von einer neuen Zeile, gefolgt von derselben Eingaben Quadrat.

Probieren Sie es online!


4

Antwort 4 - Ohm

Voraussetzung: Gibt 0ohne 0im Quellcode aus, nimmt dann eine nicht negative Ganzzahleingabe nund gibt eine neue Zeile aus, gefolgt von der 0-indizierten nFibonacci-Zahl (kann 1-indiziert sein), gefolgt von einer neuen Zeile, gefolgt von derselben Eingabe n im Quadrat. gefolgt von einer neuen Zeile, gefolgt von nmultipliziert mit einer neuen Eingabe m.

¼,≡ƒ,²,*,

4

Antwort 2 - Gleichstrom

12298P?sa1 1-sb1sc[lblcdsb+scla1-dsa1 1-<y]dsyxlcp

Voraussetzung: Gibt 0ohne 0im Quellcode aus, nimmt dann eine nicht negative Ganzzahleingabe nund gibt eine neue Zeile gefolgt von der 0-indizierten n'ten Fibonacci-Zahl aus (kann sein)1 indiziert sein).

Probieren Sie es online!


@ R.Kap Kein Problem :)
Stephen

2
Als ich die neue Anforderung las, fing ich aus irgendeinem Grund an zu lachen. +1.
Genosse SparklePony

4

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.

    def f(n, m):
        print(1-1)
        a = 1-1
        b = 1
        for i in range(n):
            c = a+b
            a = b
            b = c
        print(b)
        print(n.__mul__(n))
        print(n.__mul__(m))

3

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.

((e=Echo)[1-1];e@Fibonacci@#;e[#^2];e[1##];2^# 5^#&@59)&

1
Ja, daher meine hastige Bearbeitung, nachdem ich gesehen habe, dass EricRoe mich um eine Minute geschlagen hat :)
Greg Martin

2

Antwort 7 - JavaScript (ES6)

(a,b)=>String.fromCharCode(48)+'\n'+(m=(a)=>a>1?m(a-1)+m(a-2):1)(a)+'\n'+Math.pow(a,2)+'\n'+Math.exp(Math.log(a)+Math.log(b))+'\n'+1E257+'\n'+(T=(u,i=2,l=1-1,m=2)=>l<=u?(p=(o,z=2,s=1-1)=>z<o?p(o,z+1,s+(o%z<1&&z!=o)):s)(i)<1?T(u,i+1,l+1,i):T(u,i+1,l,m):m)(a)

Voraussetzung: Eine Funktion, die zwei Eingaben, eine nicht negative Ganzzahl nund eine beliebige Zahl , akzeptiert mund eine Zeichenfolge zurückgibt, die 0ohne Verwendung einer 0beliebigen Stelle im Quellcode eine neue Zeile gefolgt von der 0indizierten nFibonacci-Zahl (kann 1indiziert sein) enthält durch eine neue Zeile, gefolgt von einem nQuadrat, gefolgt von einer neuen Zeile, gefolgt von nmultipliziert mit mohne die Verwendung von* überall im Quellcode, durch eine neue Zeile, gefolgt von 10^Bwo Bdie Anzahl von Bytes in dem Quellcode, und schließlich gefolgt von einer newline und die nth- 0indizierte (möglicherweise auch 1-indizierte) Primzahl.

Testschnipsel


Sie könnten eine beträchtliche Menge an Bytes speichern , indem Sie 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 Weise
korrigieren

1

Antwort 8 - Gelee

Voraussetzung: Eine Funktion, die zwei Eingaben akzeptiert, eine nicht negative ganze Zahl nund eine beliebige Zahl mund , akzeptiert eine Zeichenfolge zurückgibt, die 0ohne Verwendung einer 0beliebigen Stelle im Quellcode eine neue Zeile gefolgt von der 0indizierten nFibonacci-Zahl (kann 1indiziert sein) enthält durch eine neue Zeile, gefolgt von nQuadrat, durch eine neue Zeile, gefolgt von nmultipliziert mit , mohne die Verwendung von *überall im Quellcode, durch eine neue Zeile, gefolgt von 10^Bwo Bdie Anzahl von Bytes in dem Quellcode, und schließlich gefolgt von einer newline und der nth0 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.

ÆḞṭØDW⁺¤;⁸²¤;×;ȷ25;⁸ÆN¤j⁷

Probieren Sie es online!


Ja, das ist Golf.
Erik der Outgolfer

1

Antwort 9 - Scala

Voraussetzungen : Nimmt zwei Eingänge n(> = 0) und m. Ausgaben 0ohne die Verwendung von 0oder *irgendwo im Quellcode und ohne eingebaute Funktionen zum Verbinden von Zeilenumbrüchen. Gibt dann ein Neue - Zeile , gefolgt von der 1-indexed nth Fibonacci - Zahl (werden 0indexiert), durch eine neue Zeile, gefolgt von nquadriert, durch eine neue Zeile, gefolgt von nmultipliziert mit m, durch eine neue Zeile, gefolgt von , 10^Bwo Bdie Anzahl der Bytes , im Quelltext, gefolgt von einer Newline und der nth- 1indizierten (möglicherweise auch 0-indizierten) Primzahl, und schließlich gefolgt von einer Newline und dem Greatest Common Divisor von n und m.

(n:Int,m:Int)=>{
 val z=1-1;val o=println _;var i=1;var j=z
 o(z)
 o((1 to n).foldLeft(z,1)((a,b)=>(a._2,a._1+a._2))._1)
 o(math.pow(n,2))
 o(List.fill(n)(m).sum)
 o(math.pow(9+1,299))
 while(j!=n){i+=1;if((2 to i-1)forall(i%_!=z))j+=1};o(i)
 o((1 to math.min(n,m)).filter(c=>n%c==z&&m%c==z).last)
}

Probieren Sie es hier aus

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.