Introducción:
Creo que todos saben lo que es una lámpara de lava, pero en caso de que no:
Básicamente son tubos de vidrio que contienen cera en un líquido translúcido. La parte inferior se calienta cuando se enciende la lámpara, lo que provoca un cambio de densidad y, por lo tanto, la cera flota hacia la parte superior. Cuando se enfría, vuelve a caer, causando el efecto que vemos arriba.
Por lo general, la base de la lámpara tarda entre 45 y 60 minutos en alcanzar una temperatura lo suficientemente alta como para cambiar la cera sólida a cera líquida (si la lámpara se encuentra en un área a temperatura ambiente).
Desafío:
Dado un número entero positivo que n
indica la cantidad de minutos que han pasado desde que encendimos la lámpara de lava, genera un estado aleatorio de la lámpara de lava basado en enteros en cinco niveles.
Para este desafío, diremos que la lámpara de lava contiene 1000 unidades de cera en total, y tenemos cinco niveles donde puede estar la cera.
1) Si n
está por debajo de 45, la lámpara de lava todavía se está calentando, por lo que la salida será de cuatro líneas vacías con 1000
en la parte inferior:
1000
2) Si n
está dentro del rango, [45, 60)
la lámpara de lava ha aumentado su temperatura lo suficiente como para que la cera se mueva, pero aún no muy alta. La cera puede alcanzar hasta el tercer nivel inclusive.
3) Si n
es 60
o mayor, la cera puede estar en cualquiera de los cinco niveles.
Entonces, dado el entero positivo n
como entrada, generaremos un estado aleatorio con las tres reglas anteriores en mente.
Aquí hay algunos ejemplos de resultados:
Posibles salidas para cualquiera n
que sea >= 45
:
523
106
371
913
87
Posibles salidas para cualquiera n
que sea >= 60
:
73
113
312
5
497
284
55
637
24
Salida constante para n
eso es <= 44
(y salida posible para cualquiera n
)
1000
Reglas de desafío:
- Puede haber líneas vacías, aunque el nivel superior no esté vacío.
- Simplemente
0
no está permitido en ninguna línea. Debería estar vacío en su lugar. - La salida es algo flexible. Se le permite generar una lista / matriz de cadenas / objetos en lugar de un resultado delimitado por una nueva línea como se indicó anteriormente. La razón por la que digo cadenas / objetos se debe a la regla anterior. Una línea de vacío debe ser
""
,null
,[]
, etc., pero no puede ser0
o un entero negativo (ni puede serfalse
) (es decir["", "", 913, "", 87]
paran >= 45
). También puede invertir la salida (es decir, en1000\n\n\n\n
lugar de\n\n\n\n1000
o en[87, null, 913, null, null]
lugar de[null, null, 913, null, 87]
). - Los números deben ser todos enteros. Pueden ser decimales con un
0
valor decimal, pero ninguno de los números debe tener dígitos decimales, y los enteros siempre deben sumar exactamente1000
. - Todas las salidas aleatorias posibles basadas en
n
deberían tener una probabilidad distinta de cero de ocurrir. - Se permite una nueva línea final (por lo que hay seis líneas de salida).
Reglas generales:
- Este es el código de golf , por lo que la respuesta más corta en bytes gana.
No permita que los lenguajes de código de golf lo desalienten de publicar respuestas con idiomas que no sean de código. Trate de encontrar una respuesta lo más breve posible para 'cualquier' lenguaje de programación. - Se aplican reglas estándar para su respuesta, por lo que puede usar STDIN / STDOUT, funciones / método con los parámetros adecuados y programas completos de tipo retorno. Tu llamada.
- Las lagunas predeterminadas están prohibidas.
- Si es posible, agregue un enlace con una prueba para su código.
- Además, se recomienda agregar una explicación para su respuesta.
0
un número negativo o false
.
n < 60
?
n < 45
sólo un 1 nivel está lleno sin embargo (superior o inferior dependiendo del orden de su emisión en), que es 1000
. Con 45 <= n < 60
tres de los cinco, y con n >= 60
los cinco. Pero la salida siempre contendrá cinco 'líneas'.