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