Il mio capo * non capisce perché i suoi programmatori reagiscono negativamente agli utenti che cambiano i requisiti del programma. Aiutala a capire! Ad ogni risposta, creare un nuovo requisito. Quindi, scrivere un programma / funzione che risolva tale requisito e tutti i requisiti precedenti, mentre in un nuovo linguaggio di programmazione.
Esempi
L'utente 1 pubblica la prima risposta. Specifica che il programma deve generare "Hello, World". Crea un programma in Java che genera "Hello, World".
L'utente 2 pubblica la seconda risposta. Si specifica che il programma deve accettare in ingresso n e l'uscita del n ° primo, fino a quello del linguaggio numero di max. Lei crea un programma in C ++ che accetta l'input n ed emette il n ° Prime e uscite "Ciao, mondo". Non avrebbe potuto creare un programma in Java.
L'utente 3 pubblica la terza risposta. Specifica che l'origine del programma non può contenere il testo "Hello". Egli crea una funzione in Python che accetta l'input n ed emette il n ° Prime e "Ciao, mondo". pur non usando il testo "Hello" nella sua fonte. Non avrebbe potuto creare un programma in Java o C ++.
Formato di risposta
#Answer # - <language name> [version, if pertinent]
Requirement: <rule>.
<code>
[explanations, encoding, TIO link, etc.]
Regole di risposta
La risposta deve seguire il formato sopra o simile.
La risposta può essere un programma o una funzione.
La risposta deve soddisfare tutti i requisiti fino alla risposta corrente inclusa.
Lo stesso utente non può pubblicare due risposte di seguito.
Se vengono pubblicate due risposte con lo stesso numero, quella postata in seguito deve essere eliminata.
Non modificare il tuo requisito a meno che tu non abbia fatto un errore e non siano state pubblicate altre risposte.
Se la tua risposta non è conforme alla tua regola e a tutte le altre regole, non è valida. Prova a risolvere questo problema prima che qualcun altro pubblichi la risposta successiva.
Versioni diverse della stessa lingua contano solo come lingue diverse se il programma o la funzione creati in entrambe le versioni si comporteranno diversamente nell'altra versione.
La risposta potrebbe non accettare alcun input non richiesto e potrebbe non produrre nulla di non necessario ad eccezione degli spazi bianchi necessari. Tuttavia, mentre dietro le quinte il programma deve soddisfare tutti i requisiti "nascosti" (dall'utente), può fare qualsiasi altra cosa tu voglia, specialmente se devi soddisfare un requisito di tempo di esecuzione.
Regole dei requisiti
Il requisito deve specificare solo un requisito. Questo requisito può essere condizionato e se questo requisito richiede un input e / o un output, questo può essere incluso.
Il requisito non può rimuovere o modificare i requisiti precedenti o essere in conflitto con essi, ma può estenderne uno (specificare quale).
Se il requisito limita l'origine (origine limitata ) o richiede testo nell'origine, può rimuovere solo una singola stringa (ad esempio
0
,Hello
) o richiedere un singolo carattere.Il requisito non può richiedere che l'origine sia inferiore a 100 byte, richieda una codifica specifica o, di per sé, escluda la maggior parte delle lingue comuni.
Il requisito potrebbe non forzare la sorgente a conformarsi a un determinato modello (ad esempio, iniziare ogni riga con un determinato carattere o (hash @Conor) su un determinato valore) diverso da quello specificato nella fonte riservata.
Questo è concatenamento di risposte, quindi tutte le risposte si basano su risposte precedenti. Io e forse altri cercheremo di tenere un elenco di tutti i requisiti. Per vedere le risposte in ordine, puoi ordinare in base al più vecchio. Per vedere la risposta più recente, ordina per meno recente, quindi vai alla fine dell'elenco.
Come vincere (modificato per il voto di sospensione):
Se non viene inviata alcuna risposta per due settimane, la sfida è terminata e i punteggi verranno calcolati. I punteggi saranno calcolati sommando il numero totale di risposte per ciascun utente, ma ponderando i messaggi in base a quanto sono lontani dalla catena (poiché i post successivi hanno più requisiti, sono più difficili).
pseudocodice:
for each answer in user.Answers {
score += 1 + (answer.number / 100)
}
Esempio:
Sally ha tre risposte. Ha pubblicato la risposta 5, la risposta 7 e la risposta 20.
Il suo punteggio sarà 1.05 + 1.07 + 1.2 = 3.32
. Se fosse una somma semplice di risposte, il suo punteggio sarebbe 3, ma la ponderazione della profondità della catena premia le risposte più difficili.
Iniziare:
Ecco il primo requisito, dato dal mio capo *:
Requisito 0: il programma deve emettere 0 prima di ogni altra cosa.
*immaginario
Elenco di requisiti e lingue
Tieni presente che questo potrebbe non essere aggiornato: controlla l'ultima risposta pubblicata immediatamente prima di pubblicare la risposta per assicurarti di soddisfare ogni requisito. Mi dispiace molto se crei un programma squisito, solo per qualcuno che lo snipe - se vuoi davvero pubblicarlo comunque, specifica che non è in competizione.
Requisito completo (ma forse non attuale): non può contenere
0
,*
o]
nel codice sorgente, e non è possibile utilizzare un built-in newline incorporato. Output0
, quindi accetta un input intero non negativon
e genera una nuova riga seguita daln
numero th Fibonacci indicizzato 0 (può essere1
indicizzato), seguito da una nuova riga, seguita dallo stesso input n al quadrato, seguito da una nuova riga, seguito dan
moltiplicato da un nuovo inputm
, seguito da una nuova riga, seguito da10^B
, dove siB
trova il numero di byte nel codice sorgente, seguito da una nuova riga, seguito dal numero primon
th0
-indexed (può anche essere1
-indexed), seguito da una newline, seguito dal più grande divisore comune di n e m.0: il programma deve essere emesso
0
prima di ogni altra cosa. Lingua: N / A
1: la sorgente del programma non può contenere0
. Lingua: 05AB1E
2: Il programma accetta un input intero non negativon
e genera una nuova riga seguita dal0
n-esimo numero di Fibonacci (che può essere1
indicizzato). Lingua: dc
3: il programma emette una nuova riga, seguita dallo stesso input aln
quadrato. Lingua: J
4: il programma genera una nuova riga, seguita dan
moltiplicata per un nuovo inputm
. Lingua: Ohm
5: il programma non può contenere*
(codice ASCII0x2A
). Lingua: Python 3
6: il programma genera una nuova riga, seguita da10^B
, dove siB
trova il numero di byte nel codice sorgente. Lingua: Mathematica
7: il programma emette una nuova riga, seguita dal numero primon
th0
-exexed (può anche essere1
-indexed). Lingua: JavaScript (ES6)
8: il programma non utilizza un built-in-newline incorporato, ma può utilizzare qualsiasi altro join incorporato. Lingua: Jelly
9: Il programma genera una nuova riga seguita dal più grande divisore comune di n e m. Lingua: Scala
10: il programma non può contenere]
. Lingua: Pyth
Punteggi attuali (ordinati per primo post)
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 the Outgolfer : 2,18
math_junkie : 1,09