Wprowadzenie:
Myślę, że wszyscy wiedzą, co to jest lampa lawowa, ale w przypadku, gdy nie:
Są to w zasadzie szklane rurki, które zawierają wosk w półprzezroczystej cieczy. Dolna część jest podgrzewana po włączeniu lampy, co powoduje zmianę gęstości, a wosk unosi się na górze. Kiedy ostygnie, ponownie spada, powodując efekt, który widzimy powyżej.
Zazwyczaj podstawa lampy potrzebuje około 45-60 minut, aby temperatura wzrosła wystarczająco wysoko, aby zmienić stały wosk na ciekły wosk (jeśli lampa znajduje się w obszarze o temperaturze pokojowej).
Wyzwanie:
Biorąc pod uwagę dodatnią liczbę całkowitą n
wskazującą liczbę minut, które upłynęły od włączenia lampy Lava, generuj losowy stan lampy Lava na podstawie liczb całkowitych na pięciu poziomach.
W tym wyzwaniu powiemy, że lampa Lava zawiera łącznie 1000 jednostek wosku i mamy pięć poziomów, na których może znajdować się wosk.
1) Jeśli n
jest poniżej 45, lampa lawowa nadal się nagrzewa, więc na wyjściu będą cztery puste linie z 1000
dolnym:
1000
2) Jeśli n
znajduje się w tym zakresie, [45, 60)
lampa lawy wzrosła do temperatury wystarczającej do poruszania się wosku, ale jeszcze nie jest bardzo wysoka. Wosk może osiągnąć poziom trzeci włącznie.
3) Jeśli n
jest 60
wyższy lub wyższy, wosk może znajdować się na dowolnym z pięciu poziomów.
Więc biorąc pod uwagę dodatnią liczbę całkowitą n
jako dane wejściowe, wyprowadzimy stan losowy z uwzględnieniem trzech powyższych reguł.
Oto kilka przykładowych wyników:
Możliwe wyniki dla każdego, n
który jest >= 45
:
523
106
371
913
87
Możliwe wyniki dla każdego, n
który jest >= 60
:
73
113
312
5
497
284
55
637
24
Stałe wyjście dla n
tego jest <= 44
(i możliwe wyjście dla dowolnego n
):
1000
Zasady konkursu:
- Mogą być puste linie, nawet jeśli poziom nad nim nie jest pusty.
- Po prostu
0
nie jest dozwolone na żadnej linii. Zamiast tego powinien być pusty. - Dane wyjściowe są dość elastyczne. Możesz wyprowadzać listę / tablicę ciągów / obiektów zamiast wyniku rozdzielanego znakiem nowej linii, jak wyżej. Powód, dla którego mówię, że łańcuchy / obiekty wynika z powyższej reguły. Pusta linia powinna być
""
,null
,[]
, itd., Ale nie może być0
lub liczba całkowita ujemna (ani nie może byćfalse
) (Ie["", "", 913, "", 87]
dlan >= 45
). Możesz także odwrócić dane wyjściowe (tj.1000\n\n\n\n
Zamiast\n\n\n\n1000
lub[87, null, 913, null, null]
zamiast[null, null, 913, null, 87]
). - Wszystkie liczby powinny być liczbami całkowitymi. Mogą być ułamkami
0
dziesiętnymi o wartości dziesiętnej, ale żadna z liczb nie powinna zawierać cyfr dziesiętnych, a liczby całkowite powinny zawsze sumować dokładnie1000
. - Wszystkie możliwe losowe wyjścia oparte na
n
powinny mieć niezerową szansę wystąpienia. - Końcowy nowy wiersz (więc jest sześć wierszy wyniku) jest dozwolony.
Główne zasady:
- To jest golf golfowy , więc wygrywa najkrótsza odpowiedź w bajtach.
Nie pozwól, aby języki gry w golfa zniechęcały Cię do publikowania odpowiedzi w językach niekodujących golfa. Spróbuj znaleźć możliwie najkrótszą odpowiedź na „dowolny” język programowania. - Do odpowiedzi mają zastosowanie standardowe reguły , więc możesz używać STDIN / STDOUT, funkcji / metody z odpowiednimi parametrami i zwracanymi typami, pełnych programów. Twoja decyzja.
- Domyślne luki są zabronione.
- Jeśli to możliwe, dodaj link z testem swojego kodu.
- Zalecane jest również dodanie wyjaśnienia do odpowiedzi.
0
liczby ujemnej lub false
.
n < 60
?
n < 45
tylko 1 poziom jest wypełniony (górny lub dolny w zależności od kolejności, w jakiej go wypisujesz), czyli 1000
. Z 45 <= n < 60
trzema z pięciu i ze n >= 60
wszystkimi pięcioma. Ale wynik zawsze będzie zawierał pięć „linii”.