Más Codington Crescent

Sep 20 2020

¿Quién quiere un segundo intento?

Si alguna vez ha escuchado el programa de radio "Lo siento, no tengo ni idea", probablemente haya oído hablar del juego llamado "Mornington Crescent". Para aquellos que no lo han hecho, es un juego en el que los jugadores nombran estaciones al azar en la red del metro de Londres. La primera persona en nombrar "Mornington Crescent" gana el juego. 1

Al igual que la última vez , les presento otro juego de Codington Crescent .

El reto

El ganador de este desafío es la primera persona en publicar un programa de trabajo que, dada una lista de números enteros positivos de tamaño variable, devuelve el promedio (media aritmética) de dicha lista. La lista no estará vacía y siempre tendrá al menos un elemento. La entrada y la salida se pueden proporcionar en cualquier formato razonable y conveniente

Casos de prueba

[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

Generador de casos de prueba

Las normas

  1. Cada jugador tiene su propio programa en el que agregarán / cambiarán personajes. Esto se denomina su programa en ejecución .
De esta manera, el único aspecto de encadenamiento de respuestas son las reglas. Todos usan su propio programa en ejecución. Nadie comparte un programa en absoluto
  1. Cada respuesta (un turno ) tiene que obedecer las restricciones de fuente definidas por las respuestas anteriores. Son las llamadas reglas . Cada variante tiene una duración de 5 turnos . Las reglas adoptan la forma de restricciones de fuente restringida.

  2. Los programas en ejecución pueden cambiar de idioma entre turnos.

  3. Los que responden (jugadores) pueden agregar, cambiar o eliminar (pero solo una de las opciones) tantos caracteres de su programa en ejecución por turno como deseen. Alternativamente, pueden optar por "pasar" ( más científicamente , farkle ), sin agregar nuevas reglas y aún contando como un turno. Ésta puede ser la única opción si las reglas entran en conflicto entre sí. El recuento de turnos aún se incrementa y se publicará. Consejo profesional: probablemente quieras marcarlo como wiki de la comunidad porque no aporta mucho.

  4. Al final de cada turno, el jugador declara una nueva regla que abarcará los siguientes 5 turnos. Las reglas deben ser objetivas y se recomienda encarecidamente un programa de verificación de TIO. Además, las reglas deben poder aplicarse a todos los idiomas (por ejemplo, Programs must not error using Python 3.4.2no es una regla válida).

  5. El juego continúa hasta que un programa en ejecución alcanza el resultado objetivo.

  6. Si no se ha tomado un turno durante una semana, se producirá una farkle implícita . Siempre puedes tomar un turno después de un farkle implícito, ya que cuenta como un turno (piensa en él como el turno del usuario de la comunidad).

Reglas de inicio

En cuanto al inicio del juego, los primeros 5 turnos deben seguir estas reglas:

  1. Los giros pueden no lograr el objetivo final
  2. La longitud mínima del programa es de 10 bytes

Reglas permanentes

La última vez, se observó que las siguientes reglas se adaptaban mejor como regla permanente en lugar de las reglas de 5 turnos:

  1. Los programas en ejecución deben ser irreductibles. Irreducible en este caso significa que el programa no produce la salida de todo el programa si se eliminan los caracteres de todo el programa. Es decir. No existe un programa que tenga la misma salida predeterminada que se pueda construir eliminando caracteres del programa original).

  2. Un programa no puede ganar dentro de los 5 turnos de su primera aparición.

Reglas de ejemplo

Estos son puramente ejemplos de lo que podría agregar como reglas al desafío. No se aplican a menos que alguien decida usarlos.

  • El primer y último carácter del programa en ejecución debe ser un espacio
  • Los programas en ejecución deben tener una cantidad uniforme de bytes
  • Los programas en ejecución no deben tener más de 30 bytes

Reglas de encadenamiento de respuestas adicionales

  • No puedes responder dos veces seguidas. Alguien más debe responder antes de que tengas otra oportunidad.
  • Los idiomas deben estar en Try It Online para que las respuestas sean válidas.

Consejo profesional: ordenar por más antiguo para obtener un flujo de respuestas más coherente

1 El juego original de Mornington Crescent realmente no tiene reglas ... Es más una actividad que parece un juego complicado.

Plantilla de respuesta

# [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)

Respuestas

3 SunnyMoon Sep 20 2020 at 22:05

05AB1E , turno 3

$XY~sDOsg/*+

¡Pruébelo en línea!

(¿Cómo enlazo a la respuesta anterior?)

¡Me encanta Code Golf!

Explicación

$               # 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

Reglas actuales

  • Es posible que los giros no logren el objetivo final: imprime el triple del promedio más uno ( ¡quedan 2 giros! )
  • La longitud mínima del programa es de 10 bytes (3 vueltas a la izquierda) - La longitud del programa es de 12 bytes (¡ 2 vueltas a la izquierda! )
  • Los programas deben contener el carácter ~: se supone que el carácter debe presionar el OR bit a bit de 1 y 2 (¡ 3 vueltas a la izquierda! )
  • Los programas deben tener un valor de byte promedio menor o igual a 80 - El valor de byte promedio del programa es 79.25 (¡quedan 4 vueltas!)

La nueva regla

Redoble


El programa debe incluir de 5 a 10 caracteres no alfanuméricos (¡5 vueltas a la izquierda!)

2 Noname Sep 20 2020 at 08:20

Io , 20 bytes

Devuelve el promedio + 1.

method(~,~average+1)

¡Pruébelo en línea!

Reglas

los primeros 5 turnos deben seguir estas reglas:

  • Los giros pueden no lograr el objetivo final
  • La longitud mínima del programa es de 10 bytes

esto se aplica a todos los programas en ejecución:

  • Los programas en ejecución deben ser irreductibles. Irreducible en este caso significa que el programa no produce la salida de todo el programa si se eliminan los caracteres de todo el programa. Es decir. No existe un programa que tenga la misma salida predeterminada que se pueda construir eliminando caracteres del programa original).

  • Un programa no puede ganar dentro de los 5 turnos de su primera aparición.

Nueva regla:

  • Los programas deben contener el ~personaje
2 pxeger Sep 20 2020 at 18:42

Python 3 , 23 bytes, turno 2

lambda l:sum(l)/~len(l)

¡Pruébelo en línea!

Ingrese como una lista de flotadores; salidas como un flotador.

Reglas

Reglas permanentes:

  • Los programas en ejecución deben ser irreductibles. Irreducible en este caso significa que el programa no produce la salida de todo el programa si se eliminan los caracteres de todo el programa. Es decir. No existe un programa que tenga la misma salida predeterminada que se pueda construir eliminando caracteres del programa original).

  • Un programa no puede ganar dentro de los 5 turnos de su primera aparición.

Reglas actuales:

  • Es posible que los giros no logren el objetivo final (quedan 3 giros)
  • La longitud mínima del programa es de 10 bytes (quedan 3 vueltas)
  • Los programas deben contener el ~personaje (4 vueltas a la izquierda)

Mi nueva regla:

  • Los programas deben tener un valor de bytes promedio menor o igual a 80. ( verificador )
1 pppery Oct 05 2020 at 00:31

Befunge-98 (PyFunge) , 13 bytes, turno 5

(el turno 4 fue un farkle implícito)

"PDPF"4(~FP@

Esta respuesta está lejos de ser ganadora, pero incluyo algunos personajes que un programa promedio en este idioma probablemente necesitará, y mantengo vivo el desafío.

¡Pruébelo en línea!

Respuesta anterior

Reglas:

  • Es posible que los programas no logren el objetivo final (último turno)
  • La longitud mínima del programa es de 10 bytes (último turno)
  • Los programas deben contener el carácter ~ (1 vuelta a la izquierda)
  • Los programas deben tener un valor de byte medio menor o igual a 80 (quedan 2 vueltas)
  • El programa debe incluir de 5 a 10 caracteres no alfanuméricos (¡quedan 3 vueltas!)
  • Los programas no pueden contener 2 letras minúsculas consecutivas (5 vueltas a la izquierda)