Introduzione:
Penso che tutti sappiano cos'è una Lava Lamp, ma nel caso in cui non lo facciano:
Sono fondamentalmente tubi di vetro che contengono cera in un liquido traslucido. La parte inferiore viene riscaldata quando la lampada viene accesa, causando un cambiamento di densità e quindi la cera galleggia verso l'alto. Quando si raffredda, cade di nuovo, causando l'effetto che vediamo sopra.
Di solito sono necessari circa 45-60 minuti affinché la base della lampada si alzi a una temperatura sufficientemente elevata da cambiare la cera solida in cera liquida (se la lampada si trova in un'area a temperatura ambiente).
Maggiori informazioni su Wikipedia, che è anche usato come fonte per alcuni dei testi sopra.
Sfida:
Dato un numero intero positivo che n
indica la quantità di minuti trascorsi da quando abbiamo acceso la lampada lava, emette uno stato casuale della lampada lava basato su numeri interi su cinque livelli.
Per questa sfida diremo che la lampada lava contiene 1000 unità di cera in totale e abbiamo cinque livelli in cui la cera può trovarsi.
1) Se n
è inferiore a 45, la lampada lava si sta ancora riscaldando, quindi l'uscita sarà di quattro righe vuote con 1000
in basso:
1000
2) Se si n
trova nel raggio d'azione, [45, 60)
la lampada lava ha aumentato la temperatura abbastanza da consentire alla cera di muoversi, ma non è ancora molto alta. La cera può arrivare fino al terzo livello incluso.
3) Se n
è 60
o superiore, la cera può trovarsi in uno dei cinque livelli.
Quindi, dato il numero intero positivo n
come input, genereremo uno stato casuale tenendo presenti le tre regole sopra.
Ecco alcuni esempi di output:
Possibili uscite per qualsiasi n
cosa sia >= 45
:
523
106
371
913
87
Possibili uscite per qualsiasi n
cosa sia >= 60
:
73
113
312
5
497
284
55
637
24
L'output costante n
è <= 44
(e l'output possibile per qualsiasi n
):
1000
Regole della sfida:
- Possono esserci linee vuote, anche se il livello sopra non è vuoto.
- Semplicemente
0
non è permesso su nessuna linea. Dovrebbe essere vuoto invece. - L'output è alquanto flessibile. È consentito produrre un elenco / array di stringhe / oggetti anziché un risultato delimitato da nuova riga come sopra. Il motivo per cui dico stringhe / oggetti è dovuto alla regola sopra. Una riga vuota deve essere
""
,null
,[]
, ecc, ma non può essere0
o un intero negativo (né può esserefalse
) (Ie["", "", 913, "", 87]
pern >= 45
). È anche possibile invertire l'output (vale a dire1000\n\n\n\n
anziché\n\n\n\n1000
o[87, null, 913, null, null]
invece di[null, null, 913, null, 87]
). - I numeri dovrebbero essere tutti numeri interi. I decimali possono essere
0
come valore decimale, ma nessuno dei numeri deve avere cifre decimali e gli interi devono sempre essere sommati esattamente1000
. - Tutte le possibili uscite casuali basate su
n
dovrebbero avere una probabilità diversa da zero di verificarsi. - È consentita una nuova riga finale (quindi ci sono sei righe di output).
Regole generali:
- Questo è code-golf , quindi vince la risposta più breve in byte.
Non lasciare che le lingue di code-golf ti scoraggino dal pubblicare risposte con lingue non codegolfing. Prova a trovare una risposta il più breve possibile per "qualsiasi" linguaggio di programmazione. - Per la tua risposta valgono regole standard , quindi puoi usare STDIN / STDOUT, funzioni / metodo con i parametri corretti e tipo di ritorno, programmi completi. La tua chiamata.
- Sono vietate le scappatoie predefinite .
- Se possibile, aggiungi un link con un test per il tuo codice.
- Inoltre, si consiglia vivamente di aggiungere una spiegazione per la risposta.
0
un numero negativo o false
.
n < 60
?
n < 45
solo 1 livello è riempito tuttavia (superiore o inferiore a seconda dell'ordine uscita in), che è 1000
. Con 45 <= n < 60
tre dei cinque e con n >= 60
tutti e cinque. Ma l'output conterrà sempre cinque "righe".