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 nindica 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 1000in basso:
1000
2) Se si ntrova 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è 60o superiore, la cera può trovarsi in uno dei cinque livelli.
Quindi, dato il numero intero positivo ncome input, genereremo uno stato casuale tenendo presenti le tre regole sopra.
Ecco alcuni esempi di output:
Possibili uscite per qualsiasi ncosa sia >= 45:
523
106
371
913
87
Possibili uscite per qualsiasi ncosa 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
0non è 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ò essere0o un intero negativo (né può esserefalse) (Ie["", "", 913, "", 87]pern >= 45). È anche possibile invertire l'output (vale a dire1000\n\n\n\nanziché\n\n\n\n1000o[87, null, 913, null, null]invece di[null, null, 913, null, 87]). - I numeri dovrebbero essere tutti numeri interi. I decimali possono essere
0come 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
ndovrebbero 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.
0un numero negativo o false.
n < 60?
n < 45solo 1 livello è riempito tuttavia (superiore o inferiore a seconda dell'ordine uscita in), che è 1000. Con 45 <= n < 60tre dei cinque e con n >= 60tutti e cinque. Ma l'output conterrà sempre cinque "righe".
