Mon patron * ne comprend pas pourquoi ses programmeurs réagissent négativement aux utilisateurs changeant les exigences du programme. Aidez-la à comprendre! À chaque réponse, créez une nouvelle exigence. Ensuite, écrivez un programme / fonction qui résout cette exigence et toutes les exigences antérieures, dans un nouveau langage de programmation.
Exemples
L'utilisateur 1 publie la première réponse. Il précise que le programme doit sortir "Hello, World". Il crée un programme en Java qui génère "Hello, World".
L'utilisateur 2 publie la deuxième réponse. Elle précise que le programme doit accepter l' entrée n et la sortie du n ième premier, jusqu'au numéro de la langue max. Elle crée un programme en C ++ qui accepte les entrées n et renvoie le n ième premier et sorties « Bonjour, monde. » Elle n'aurait pas pu créer un programme en Java.
L'utilisateur 3 publie la troisième réponse. Il précise que la source du programme ne peut pas contenir le texte "Bonjour". Il crée une fonction en Python qui accepte l'entrée n et sort le n ème premier et «Bonjour, le monde». sans utiliser le texte "Bonjour" dans sa source. Il n'aurait pas pu créer un programme en Java ou C ++.
Format de réponse
#Answer # - <language name> [version, if pertinent]
Requirement: <rule>.
<code>
[explanations, encoding, TIO link, etc.]
Règles de réponse
La réponse doit suivre le format ci-dessus ou similaire.
La réponse peut être un programme ou une fonction.
La réponse doit répondre à toutes les exigences jusqu'à et y compris la réponse actuelle.
Le même utilisateur ne peut pas poster deux réponses consécutives.
Si deux réponses sont publiées avec le même numéro, celle publiée plus tard doit être supprimée.
Ne modifiez pas vos exigences, sauf si vous avez mal gâché et qu'aucune autre réponse n'a été publiée.
Si votre réponse n'est pas conforme à votre règle et à toutes les autres règles, elle n'est pas valide. Essayez de résoudre ce problème avant que quelqu'un d'autre ne poste la réponse suivante.
Différentes versions de la même langue ne comptent comme langues différentes que si le programme ou la fonction créé dans l'une ou l'autre version se comporte différemment dans l'autre version.
La réponse peut n'accepter aucune entrée non requise et ne peut rien afficher de non requis, à l'exception des espaces nécessaires. Cependant, alors qu'en arrière-plan le programme doit remplir toutes les exigences "cachées" (de l'utilisateur), il peut faire tout ce que vous voulez, surtout si vous devez remplir une condition de temps d'exécution.
Règles d'exigence
L'exigence ne doit spécifier qu'une seule exigence. Cette exigence peut être conditionnelle, et si cette exigence nécessite une entrée et / ou une sortie, cela peut être inclus.
L'exigence ne peut pas supprimer ou modifier les exigences antérieures, ni entrer en conflit avec elles, mais peut en étendre une (préciser lesquelles).
Si l'exigence restreint la source (source -restreinte ) ou requiert du texte dans la source, elle ne peut supprimer qu'une seule chaîne (par exemple
0
,Hello
) ou exiger un seul caractère.Cette exigence ne peut pas exiger que la source soit inférieure à 100 octets, exiger un codage spécifique ou, en soi, exclure une majorité de langues courantes.
L'exigence peut ne pas forcer la source à se conformer à un certain modèle (par exemple, commencer chaque ligne avec un certain caractère, ou (@Conor) hacher à une certaine valeur) autre que celui spécifié dans la source restreinte.
Il s'agit du chaînage des réponses, donc toutes les réponses s'appuient sur les réponses précédentes. Moi et peut-être d'autres, j'essaierai de garder une liste de toutes les exigences. Pour voir les réponses dans l'ordre, vous pouvez trier par les plus anciennes. Pour voir la réponse la plus récente, triez par la plus ancienne, puis accédez à la fin de la liste.
Comment gagner (modifié pour le vote d'attente):
Lorsqu'aucune réponse n'est publiée pendant deux semaines, le défi est terminé et les scores seront calculés. Les scores seront calculés en additionnant le nombre total de réponses par chaque utilisateur, mais en pondérant les messages en fonction de leur niveau dans la chaîne (car les derniers messages ont plus d'exigences, ils sont plus difficiles).
Pseudocode:
for each answer in user.Answers {
score += 1 + (answer.number / 100)
}
Exemple:
Sally a trois réponses. Elle a affiché la réponse 5, la réponse 7 et la réponse 20.
Son score sera 1.05 + 1.07 + 1.2 = 3.32
. S'il s'agissait d'une simple somme de réponses, son score serait de 3, mais la pondération de la profondeur de la chaîne récompense les réponses plus difficiles.
Commencer:
Voici la première exigence, donnée par mon patron *:
Condition 0: Le programme doit sortir 0 avant toute autre chose.
*fictif
Liste des exigences et des langues
Notez que cela peut être obsolète - veuillez consulter la dernière réponse publiée immédiatement avant de publier votre réponse pour vous assurer que vous remplissez toutes les conditions. Je suis vraiment désolé si vous créez un programme exquis, uniquement pour que quelqu'un le snipe - si vous voulez vraiment vraiment le publier de toute façon, spécifiez non concurrentiel.
Complet (mais peut-être pas actuel) Condition: ne peut pas contenir
0
,*
ni]
dans le code source, et ne peut pas utiliser une fonction intégrée join-on-newline. Sorties0
, puis prend une entrée entière non négativen
et sort une nouvelle ligne suivie dun
numéro de Fibonacci indexé 0 (peut être1
indexé), suivie d'une nouvelle ligne, suivie de la même entrée n au carré, suivie d'une nouvelle ligne, suivie d'unen
multiplication par une nouvelle entréem
, suivie d'une nouvelle ligne, suivie de10^B
, oùB
est le nombre d'octets dans le code source, suivie d'une nouvelle ligne, suivie du nombre premiern
th-0
indexé (peut également être1
-indexé), suivi d'une nouvelle ligne, suivi du plus grand diviseur commun de n et m.0: Le programme doit sortir
0
avant toute autre chose. Langue: N / A
1: La source du programme ne peut pas contenir0
. Langue: 05AB1E
2: Le programme prend une entrée entière non négativen
et sort une nouvelle ligne suivie du0
nième numéro de Fibonacci -indexé (peut être1
indexé). Langue: dc
3: Le programme sort une nouvelle ligne, suivie de la même entrée aun
carré. Langue: J
4: Le programme sort une nouvelle ligne, puisn
multipliée par une nouvelle entréem
. Langue: Ohm
5: Le programme ne peut pas contenir*
(code ASCII0x2A
). Langue: Python 3
6: Le programme génère une nouvelle ligne, suivie de10^B
, oùB
est le nombre d'octets dans le code source. Langue: Mathematica
7: Le programme génère une nouvelle ligne, suivie du nombre premiern
th-0
indexé (peut aussi être1
-indexé). Langage: JavaScript (ES6)
8: Le programme n'utilise pas de fonction intégrée de jointure sur nouvelle ligne, mais peut utiliser n'importe quelle autre fonction intégrée de jointure. Langue: Jelly
9: Le programme génère une nouvelle ligne suivie du plus grand diviseur commun de n et m. Langue: Scala
10: Le programme ne peut pas contenir]
. Langue: Pyth
Scores actuels (classés par premier message)
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 le Outgolfer : 2,18
math_junkie : 1,09
la source
Réponses:
Réponse 10 - Pyth
Condition: prend deux entrées,
n
(> = 0) etm
. Sorties0
sans utilisation de0
,*
ou]
n'importe où dans le code source, et sans prédéfinis pour rejoindre des sauts de ligne.1
Affiche ensuite une nouvelle ligne suivie du nième numéro de Fibonacci -indexé (peut être0
indexé), suivie d'une nouvelle ligne, suivie d'unn
carré, suivie d'une nouvelle ligne, suivie den
multipliée parm
, suivie d'une nouvelle ligne, suivie de10^B
oùB
est le nombre d'octets dans le code source, suivi d'une nouvelle ligne et du nombre premiern
th-1
indexé (peut également être0
-indexé), et enfin suivi d'une nouvelle ligne et du plus grand diviseur commun de n et m.Interprète en ligne
la source
j
place dejb
, car alors j'utiliserais une fonction intégrée join-on-newlines.Réponse 1 - 05AB1E
Condition: Imprime
0
... sans un0
dans le code sourcela source
Réponse 3 - J
Condition: génère
0
sans0
dans le code source, puis prend une entrée entière non négativen
et0
génère une nouvelle ligne suivie du numéron
de Fibonacci -indexé (peut être1
indexé), suivie d'une nouvelle ligne, suivie de la même entrée aun
carré.Essayez-le en ligne!
la source
Réponse 4 - Ohm
Condition: génère
0
sans0
dans le code source, puis prend une entrée entière non négativen
et génère une nouvelle ligne suivie dun
numéro de Fibonacci indexé 0 (peut être 1 indexé), suivie d'une nouvelle ligne, suivie de la même entrée n au carré, suivi d'une nouvelle ligne, suivi den
multiplié par une nouvelle entréem
.la source
Réponse 2 - DC
Condition: affiche
0
sans0
dans le code source, puis prend une entrée entière non négativen
et0
génère une nouvelle ligne suivie du -ième indexn
de Fibonacci -indexé (peut être1
indexé).Essayez-le en ligne!
la source
Réponse 5 - Python 3
Exigences: génère 0 sans 0 dans le code source, puis prend une entrée entière non négative n et génère une nouvelle ligne suivie du nième numéro de Fibonacci indexé 0 (peut être 1 indexé), suivi d'une nouvelle ligne, suivie de la même entrée n au carré, suivi d'une nouvelle ligne, suivi de n multiplié par une nouvelle entrée m. N'utilisez pas le caractère
*
, le code ASCII 0x2A.la source
Réponse 6 - Mathematica
Condition: affiche 0 sans 0 ou * dans le code source, puis prend une entrée entière non négative n et génère une nouvelle ligne suivie du nième numéro de Fibonacci indexé 0 (peut être 1 indexé), suivi d'une nouvelle ligne, suivie de la même entrée n au carré, suivie d'une nouvelle ligne, suivie de n multipliée par une nouvelle entrée m, suivie d'une nouvelle ligne, suivie de 10 ^ B où B est le nombre d'octets dans le code source.
la source
Réponse 7 - JavaScript (ES6)
Condition: une fonction qui prend deux entrées, un entier non négatif
n
et n'importe quel nombrem
et retourne une chaîne contenant0
sans utiliser0
n'importe où dans le code source, puis une nouvelle ligne suivie du0
numéro den
Fibonacci -indexé (peut être1
indexé), suivi par un saut de ligne, suivi den
carré, suivi d'un saut de ligne, suivi den
multiplié parm
sans l'utilisation de*
n'importe où dans le code source, suivi d'un saut de ligne, suivi de10^B
oùB
est le nombre d'octets dans le code source, et finalement suivi d'un newline et len
th-0
indexé (peut également être1
-indexé).Extrait de test
Afficher l'extrait de code
la source
String.fromCharCode(48)
à1-1
. Ce n'est pas vraiment important ;-) (En outre, il y a deux zéros plus tard dans le code source, que vous pouvez corriger de la même manière)Réponse 8 - Gelée
Condition: une fonction qui prend deux entrées, un entier non négatif
n
et n'importe quel nombrem
et retourne une chaîne contenant0
sans utiliser0
n'importe où dans le code source, puis une nouvelle ligne suivie du0
numéro den
Fibonacci -indexé (peut être1
indexé), suivi par un saut de ligne, suivi den
carré, suivi d'un saut de ligne, suivi den
multiplié parm
sans l'utilisation de*
n'importe où dans le code source, suivi d'un saut de ligne, suivi de10^B
oùB
est le nombre d'octets dans le code source, et finalement suivi d'un newline et len
th-0
indexé (peut également être1
-indexé) nombre premier. Aucun buildins pour rejoindre sur les nouvelles lignes autorisé, mais rejoindre les builtins est toujours autorisé.Essayez-le en ligne!
la source
Réponse 9 - Scala
Exigences : Prend deux entrées,
n
(> = 0) etm
. Sorties0
sans utilisation de0
ou*
n'importe où dans le code source, et sans prédéfinis pour rejoindre des sauts de ligne.1
Affiche ensuite une nouvelle ligne suivie du nième numéro de Fibonacci -indexé (peut être0
indexé), suivie d'une nouvelle ligne, suivie d'unn
carré, suivie d'une nouvelle ligne, suivie den
multipliée parm
, suivie d'une nouvelle ligne, suivie de10^B
oùB
est le nombre d'octets dans le code source, suivi d'une nouvelle ligne et dun
th-1
indexé (peut également être0
-indexé), et enfin suivi d'une nouvelle ligne et du plus grand diviseur commun de n et m.Essayez-le ici
la source