Вступ:
Я думаю, що всі знають, що таке лампа Лави, але у випадку, якщо вони цього не роблять:
Це в основному скляні трубочки, які містять віск у напівпрозорій рідині. Нижня частина нагрівається при включенні лампи, викликаючи зміну щільності і, таким чином, віск пливе на верх. Коли він охолоне, він знову падає, викликаючи ефект, який ми бачимо вище.
Зазвичай для того, щоб основа основи лампи піднялася на досить високу температуру, потрібно змінити твердий віск на рідкий віск (якщо лампа розташована в районі кімнатної температури).
Більше інформації у Вікіпедії, яка також використовується як джерело для деяких текстів вище.
Виклик:
Давши додатне ціле число, що 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
усіма п’ятьма. Але вихід завжди буде містити п'ять "рядків".