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ą nwskazują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 njest poniżej 45, lampa lawowa nadal się nagrzewa, więc na wyjściu będą cztery puste linie z 1000dolnym:
1000
2) Jeśli nznajduje 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 njest 60wyż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ą njako 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, nktóry jest >= 45:
523
106
371
913
87
Możliwe wyniki dla każdego, nktóry jest >= 60:
73
113
312
5
497
284
55
637
24
Stałe wyjście dla ntego 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
0nie 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ć0lub 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\nZamiast\n\n\n\n1000lub[87, null, 913, null, null]zamiast[null, null, 913, null, 87]). - Wszystkie liczby powinny być liczbami całkowitymi. Mogą być ułamkami
0dziesię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
npowinny 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.
0liczby ujemnej lub false.
n < 60?
n < 45tylko 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 < 60trzema z pięciu i ze n >= 60wszystkimi pięcioma. Ale wynik zawsze będzie zawierał pięć „linii”.
