Altro Codington Crescent
Chi è pronto per un secondo tentativo?
Se hai mai ascoltato il programma radiofonico "Mi dispiace, non ho la più pallida idea", probabilmente hai sentito parlare del gioco chiamato "Mornington Crescent". Per coloro che non l'hanno fatto, è un gioco in cui i giocatori nominano stazioni casuali sulla rete della metropolitana di Londra. La prima persona a chiamare "Mornington Crescent" vince la partita. 1
Proprio come l'ultima volta , vi presento un altro gioco di Codington Crescent .
La sfida
Il vincitore di questa sfida è la prima persona a pubblicare un programma di lavoro che, data una lista di numeri interi positivi di dimensione variabile, restituisce la media (media aritmetica) di detta lista. L'elenco non sarà vuoto e avrà sempre almeno un elemento. L'input e l'output possono essere forniti in qualsiasi formato ragionevole e conveniente
Casi test
[150, 541, 168, 225, 65, 191, 964, 283, 825, 5, 802, 426, 45, 326, 22, 619, 281] => 349.29411764705884
[874, 33, 423, 36, 1000, 255, 345, 902, 700, 141, 916, 959, 222, 246, 96] => 476.53333333333336
[567, 868, 680, 121, 574, 391, 233, 39, 764, 499, 455, 684, 742, 117, 376] => 474.0
[177, 372, 778, 709, 474, 796, 840, 742] => 611.0
[181, 751, 940, 782, 727, 756, 541, 762, 677, 751, 719] => 689.7272727272727
[47, 804, 782, 231, 170] => 406.8
[315, 972] => 643.5
[679, 727] => 703.0
[859, 229, 363, 468, 103, 104, 570, 772, 83, 693, 898, 672, 306, 733, 189, 717, 231] => 470.0
[228, 839] => 533.5
[395, 622, 760, 820, 70, 814, 797, 202, 277, 663, 93, 218, 564, 735] => 502.14285714285717
[724, 631, 932, 333, 605, 880, 670, 468, 703, 744, 680, 28] => 616.5
[950, 733, 305, 178, 995] => 632.2
[762, 506, 553, 284, 499, 694, 665, 998, 576, 504, 123, 658, 943, 385, 354, 732] => 577.25
[151, 919, 514, 721, 426, 333, 808, 514] => 548.25
[995] => 995.0
[891, 243, 42, 968, 458, 372, 301, 269, 559, 394, 980, 372, 804, 429, 738] => 521.3333333333334
[147, 473, 632] => 417.3333333333333
[105, 483, 225, 541, 684, 456, 328] => 403.14285714285717
[311, 1, 770, 417, 910, 185, 375, 631, 226, 266, 609] => 427.3636363636364
Le regole
- Ogni giocatore ha il proprio programma che aggiungerà / cambierà i personaggi. Questo è definito il loro programma in esecuzione .
Ogni risposta (un turno ) deve obbedire alle restrizioni sulla fonte definite dalle risposte precedenti. Queste sono chiamate regole . Ogni variante dura 5 turni . Le regole sono sotto forma di restrizioni di origine limitata.
I programmi in esecuzione possono cambiare la lingua tra i turni.
Chi risponde (i giocatori) possono aggiungere, modificare o rimuovere (ma solo una delle opzioni) tutti i personaggi che desiderano del loro programma in esecuzione per turno. In alternativa, possono scegliere di "passare" ( più scientificamente , farkle ), non aggiungendo nuove regole e contando comunque come un turno. Questa può essere l'unica scelta se le regole sono in conflitto tra loro. Il conteggio dei turni è ancora incrementato e deve essere pubblicato. Suggerimento: probabilmente potresti volerlo contrassegnare come wiki della comunità perché non aggiunge molto.
Alla fine di ogni turno, il giocatore dichiara una nuova regola che coprirà i 5 turni successivi. Le regole devono essere oggettive e un programma di verifica TIO è altamente raccomandato. Inoltre, le regole devono essere in grado di essere applicate a tutte le lingue (ad esempio,
Programs must not error using Python 3.4.2non è una regola valida).Il gioco continua fino a quando un programma in esecuzione non raggiunge il risultato desiderato.
Se una svolta non è stata eseguita per una settimana, si verificherà un farkle implicito . Puoi sempre fare un turno dopo un farkle implicito, poiché conta come un turno (pensalo come il turno dell'utente della comunità).
Regole iniziali
Per iniziare il gioco, i primi 5 turni devono seguire queste regole:
- I turni potrebbero non raggiungere l'obiettivo finale
- La lunghezza minima del programma è di 10 byte
Regole permanenti
L'ultima volta, è stato notato che le seguenti regole si adattano meglio come regola permanente piuttosto che come regole dei 5 turni:
I programmi in esecuzione devono essere irriducibili. Irriducibile in questo caso significa che il programma non produce l'output dell'intero programma se i caratteri dell'intero programma vengono rimossi. Cioè. Non esiste un programma con lo stesso output predefinito che può essere costruito rimuovendo i caratteri dal programma originale.)
Un programma non può vincere entro 5 turni dalla sua prima apparizione
Regole di esempio
Questi sono puramente esempi di ciò che potresti aggiungere come regole alla sfida. Non si applicano a meno che qualcuno non decida di usarli.
- Il primo e l'ultimo carattere del programma in esecuzione devono essere uno spazio
- I programmi in esecuzione devono avere una quantità pari di byte
- I programmi in esecuzione non devono superare i 30 byte
Regole di concatenamento di risposte extra
- Non puoi rispondere due volte di seguito. Qualcun altro deve rispondere prima che tu abbia un altro tentativo.
- Le lingue devono essere su Provalo online per essere risposte valide.
Suggerimento da professionista: ordina per più vecchio per un flusso più coerente di risposte
1 Il gioco originale di Mornington Crescent non ha regole ... È più un'attività che sembra un gioco complicato.
Modello di risposta
# [Language], turn number [your turn]
<code>
[Try it online link]
[prev answer link]
## Rules
- Rule (n turns left)
- Rule (n turns left)
- Rule (n turns left)
Risposte
05AB1E , svolta 3
$XY~sDOsg/*+
(Come faccio a collegarmi alla risposta precedente?)
Ragazzo, adoro Code Golf!
Spiegazione
$ # Push 1 and input
X # Push 1
Y # Push 2
~ # Converts 1 and 2 to 3
s # Swap to get implicit input
D # Duplicate
O # Sum the list
s # Swap top 2 values and gets the preserved list.
g # Push the length of the list.
/ # Push the quotient of sum and length
* # Multiply with 3
+ # Add with one
Regole attuali
- I turni potrebbero non raggiungere l'obiettivo finale - Stampa il triplo della media più uno ( 2 turni rimanenti! )
- La lunghezza minima del programma è di 10 byte (3 giri a sinistra) - La lunghezza del programma è di 12 byte ( 2 giri a sinistra! )
- I programmi devono contenere il carattere ~ - Il carattere dovrebbe premere l'OR bit per bit di 1 e 2 ( 3 giri a sinistra! )
- I programmi devono avere un valore di byte medio inferiore o uguale a 80 - Il valore di byte medio del programma è 79,25 (4 giri a sinistra!)
La nuova regola
Rullo di tamburi
Il programma deve includere 5-10 caratteri non alfanumerici (5 giri a sinistra!)
Io , 20 byte
Restituisce la media + 1.
method(~,~average+1)
Regole
i primi 5 turni devono seguire queste regole:
- I turni potrebbero non raggiungere l'obiettivo finale
- La lunghezza minima del programma è di 10 byte
questo vale per tutti i programmi in esecuzione:
I programmi in esecuzione devono essere irriducibili. Irriducibile in questo caso significa che il programma non produce l'output dell'intero programma se i caratteri dell'intero programma vengono rimossi. Cioè. Non esiste un programma con lo stesso output predefinito che può essere costruito rimuovendo i caratteri dal programma originale.)
Un programma non può vincere entro 5 turni dalla sua prima apparizione
Nuova regola:
- I programmi devono contenere il
~carattere
Python 3 , 23 byte, giri 2
lambda l:sum(l)/~len(l)
Input come elenco di float; viene visualizzato come un galleggiante.
Regole
Regole permanenti:
I programmi in esecuzione devono essere irriducibili. Irriducibile in questo caso significa che il programma non produce l'output dell'intero programma se i caratteri dell'intero programma vengono rimossi. Cioè. Non esiste un programma con lo stesso output predefinito che può essere costruito rimuovendo i caratteri dal programma originale.)
Un programma non può vincere entro 5 turni dalla sua prima apparizione
Regole attuali:
- I turni potrebbero non raggiungere l'obiettivo finale (3 turni a sinistra)
- La lunghezza minima del programma è di 10 byte (3 giri a sinistra)
- I programmi devono contenere il
~carattere (4 giri a sinistra)
La mia nuova regola:
- I programmi devono avere un valore in byte medio inferiore o uguale a 80. ( verificatore )
Befunge-98 (PyFunge) , 13 byte, turno 5
(il turno 4 era un farkle implicito)
"PDPF"4(~FP@
Questa risposta è lungi dall'essere vincente, ma includo alcuni personaggi di cui un programma medio in questa lingua avrà probabilmente bisogno, e manterrò viva la sfida.
Regole:
- I programmi potrebbero non raggiungere l'obiettivo finale (ultimo turno)
- La lunghezza minima del programma è di 10 byte (ultimo turno)
- I programmi devono contenere il carattere ~ (1 svolta a sinistra)
- I programmi devono avere un valore di byte medio inferiore o uguale a 80. (2 giri a sinistra)
- Il programma deve includere 5-10 caratteri non alfanumerici (3 giri a sinistra!)
- I programmi non possono contenere 2 lettere minuscole consecutive (5 giri a sinistra)