Su tarea es crear un programa que agregue números aleatorios a sumas anteriores en el último enfrentamiento de carreras de números.
Cada corredor (columna) comienza en 0 y agrega 1 o 0 a la suma anterior en cada paso de la carrera hasta que todos los corredores alcancen el puntaje requerido para ganar. El 1 o 0 se debe elegir al azar (la definición estándar de aleatorio se puede encontrar aquí ). La salida mostrará el resultado de la carrera, con cada columna representando un corredor, en este formato:
>> racers:5,score needed:2
0 0 0 0 0 # all racers start at 0
+ + + + + # add
1 0 0 0 1 # random 1 or 0
= = = = = # equals
1 0 0 0 1 # sum
+ + + + +
0 0 0 0 1
= = = = =
1 0 0 0 2 # winner!
+ + + +
1 1 1 1
= = = =
2 1 1 1
+ + +
1 1 1
= = =
2 2 2 # losers
Nota: solo los números, + y = deben incluirse en la salida.
Entrada
Su programa aceptará los siguientes dos parámetros como entrada:
- El número de corredores (columnas), que debe ser mayor que dos
- el puntaje requerido para ganar, que debe ser mayor que uno
Esto es code-golf: el programa con menos bytes gana.
Editar: hay un puntaje máximo no exigible de 9, esto es para preservar la integridad de la columna. Además, los espacios entre columnas se pueden omitir en la salida.
Respuestas:
Gelatina,
373633 bytes3 bytes gracias a Dennis.
Pruébalo en línea
Explicación
fuente
,‘X
(par con n incrementada , elección aleatoria). En el enlace principalṫ2
se puede reemplazar conḊ
(dequeue) y”
con la variable⁶
.Pyth ,
3834 bytesPruébalo en línea!
fuente
TSQL,
367345341 bytesGolfed
Pruébalo en línea
Sin golf:
Tenga en cuenta que la semilla aleatoria en el sitio de prueba siempre será la misma, dando el mismo resultado cada vez, en la gestión del estudio dará resultados diferentes. Puede usar diferentes valores para los corredores y el objetivo para obtener una imagen diferente
fuente
Python 3, 237 bytes
Una función que toma datos a través de argumentos e imprime en STDOUT. Este enfoque hace uso del hecho de que la salida sigue un ciclo del período cuatro, de la forma '+ valor = valor', para todos los corredores. Al usar un módulo de contador cuatro, se puede indexar una lista que contiene el valor deseado para cada paso como una cadena, y el resultado evaluado utilizando la función eval de Python.
Cómo funciona
Pruébalo en Ideone
fuente
Python 2 , 191 bytes
Pruébalo en línea!
Python 3 , 200 bytes
Pruébalo en línea!
fuente
Python 2, 278 bytes
donde r es el no. de corredores yw es el marcador para ganar
Pruébalo aquí!
fuente
Perl 5 , 150 bytes
Pruébalo en línea!
La primera entrada es el número de corredores, la segunda es la puntuación necesaria.
fuente