Вступление:
Я думаю, что все знают, что такое Лава Лампа, но на случай, если они этого не сделают:
В основном это стеклянные трубки, которые содержат воск в полупрозрачной жидкости. Нижняя часть нагревается при включении лампы, вызывая изменение плотности, и, таким образом, воск всплывает наверх. Когда он остывает, он снова падает, вызывая эффект, который мы видим выше.
Обычно требуется около 45-60 минут для того, чтобы основание лампы поднялось до достаточно высокой температуры, чтобы сменить твердый воск на жидкий воск (если лампа находится в помещении с комнатной температурой).
Вызов:
Учитывая положительное целое число, nуказывающее количество минут, прошедших с момента включения лампы лавы, выведите случайное состояние лампы лавы на основе целых чисел на пяти уровнях.
Для этого испытания мы скажем, что Лавовая Лампа содержит в общей сложности 1000 единиц воска, и у нас есть пять уровней, на которых может находиться воск.
1) Если значение nниже 45, лампа лавы все еще нагревается, поэтому на выходе будут четыре пустые строки с 1000нижней частью:
1000
2) Если значение nнаходится в пределах диапазона, [45, 60)температура лавовой лампы достаточно высока, чтобы воск мог перемещаться, но пока не очень высокий. Воск может достигать вплоть до третьего уровня.
3) Если nесть 60или выше, воск может быть на любом из пяти уровней.
Поэтому, учитывая положительное целое число в nкачестве входных данных, мы выведем случайное состояние с учетом трех приведенных выше правил.
Вот несколько примеров выходных данных:
Возможные выходы для любого nчто есть >= 45:
523
106
371
913
87
Возможные выходы для любого nчто есть >= 60:
73
113
312
5
497
284
55
637
24
Постоянный вывод для nэтого есть <= 44(и возможный вывод для любого n):
1000
Правила соревнований:
- Могут быть пустые строки, даже если уровень над ним не пустой.
- Просто
0не допускается ни на одной линии. Должно быть пустым вместо этого. - Вывод несколько гибкий. Вам разрешено выводить список / массив строк / объектов вместо результата, разделенного новой строкой, как описано выше. Причина, по которой я говорю «строки / объекты», связана с приведенным выше правилом. Пустая строка должна быть
"",null,[]и т.д., но не может быть0или отрицательное целое число ( и не может бытьfalse) (т.е.["", "", 913, "", 87]дляn >= 45). Вы также можете изменить вывод (т. Е.1000\n\n\n\nВместо\n\n\n\n1000или[87, null, 913, null, null]вместо[null, null, 913, null, 87]). - Числа должны быть целыми числами. Может быть десятичным
0числом с десятичным значением, но ни одно из чисел не должно иметь десятичных цифр, а целые числа всегда должны точно совпадать1000. - Все возможные случайные выходы на основе
nдолжны иметь ненулевую вероятность возникновения. - Трейлинг новой строки (так что есть шесть строк вывода) допускается.
Основные правила:
- Это код-гольф , поэтому выигрывает самый короткий ответ в байтах.
Не позволяйте языкам кода-гольфа отговаривать вас от публикации ответов на языках, не относящихся к кодексу. Попробуйте придумать как можно более короткий ответ для «любого» языка программирования. - Применяются стандартные правила вашему ответу , поэтому вы можете использовать STDIN / STDOUT, функции / метод с правильными параметрами и типом возврата, полные программы. Ваш звонок.
- По умолчанию лазейки запрещены.
- Если возможно, добавьте ссылку с тестом для вашего кода.
- Кроме того, добавление объяснения для вашего ответа настоятельно рекомендуется.
0отрицательного числа или false.
n < 60?
n < 45только 1 уровень заполнен , однако (сверху или снизу в зависимости от того , вы выводите его), что 1000. С 45 <= n < 60тремя из пяти и со n >= 60всеми пятью. Но вывод всегда будет содержать пять «строк».
