Вызов:
В гипотетическом сценарии таймер обратного отсчета для гонки имеет случайные интервалы между счетами, чтобы предотвратить преждевременный запуск, например
3 (0.82 seconds pass), 2 (0.67 seconds pass), 1
Входные данные:
ничего такого
Выход:
Напишите программу (или функцию), которая печатает 3 числа со случайным интервалом времени от 0,50 секунды до 1 секунды между каждым отсчетом.
Замечания:
- Программа должна выводить каждое число (3, 2, 1) со случайным ( любое число от 0,50 до 1 сотых; без жесткого кодирования) временным интервалом между каждым. Точность случайного интервала должна доходить до сотен (например, 0,52). Вы не обязаны выводить интервал, только количество.
- Как пояснил @JoKing, я имею в виду равномерно случайный (вы можете использовать генератор псевдослучайного в вашем языке.
- Как пояснили многие, я действительно имею в виду любое 2-десятичное число от 0,5 до 1 (0,50, 0,51 и т. Д., Вплоть до 0,98, 0,99, 1).
Это код-гольф , поэтому выигрывает программа с наименьшим количеством байтов.
Ответы:
05AB1E , 12 байтов
Попробуйте онлайн!
Попробуйте с включенной отладкой: попробуйте онлайн!
источник
SmileBASIC,
6462 байтаК сожалению, я не могу использовать WAIT, так как он поддерживает только интервалы 1/60 секунды (что-то меньшее обычно не полезно, поскольку ввод / вывод обновляется только один раз за кадр)
Это требует корректировки в зависимости от скорости системы, на которой она работает, поэтому она может быть недействительной (46 байт):
Неверная версия WAIT (36 байт):
источник
R ,
4644 байтадля фактического обратного отсчета:
Попробуйте онлайн!
Интервал печати, как я изначально неправильно понял задачу (46 байт) Спасибо Джузеппе за сохранение 2 символов.
Попробуйте онлайн!
источник
runif()
по умолчанию имеет левую и правую конечные точки как0
и1
соответственно, поэтомуrunif(1,.5)
должно работать одинаково для -2 байтов в обоих.Python 2 , 58 байт
Попробуйте онлайн!
Я создал очень простой генератор случайных чисел, который требует начального времени (как и многие люди).
улучшения
источник
1-time()%.5
должен сделать свое дело. ([3,2,1]
Кстати, нужно )for a in'321'
сохраняет еще дваAPL + WIN, 37 байт
источник
Java 8, 86 байт
Печать без разделителя. Если это не разрешено, это +2 байта путем изменения
print
наprintln
(разделитель новой строки).Попробуйте онлайн.
Докажите, что интервалы находятся в правильном диапазоне
[500, 1000)
мс.Объяснение:
источник
Python 3, 122 байта
Попробуйте онлайн!
источник
JavaScript (Node.js) ,
756560 байтПопробуйте онлайн!
источник
*1000%500+500
? Вы можете просто использовать*500+500
.Perl 5 , 39 байт
Постепенно уменьшилось до 39 байт благодаря @ jonathan-allan + @xcali.
Попробуйте онлайн!
источник
1-rand(.5)
работать?1-rand.5
тоже использовать .Чип
-wingjj
, 33 байтаПопробуйте онлайн!
В чипе, мы не можем ждать точно +1 / +100 секунды, но мы можем ждать 1 / +256 секунды, поэтому мы используем это здесь.
p
На вопрос, будет приостановить исполнение для головы стека (один байт) * 1 / 256 секунд. На каждом цикле мы всегда устанавливаем старший бит стека ( 128 / 256 ) и установить все другие биты стека случайным образом (с?
«ы). Это дает равномерное распределение между 0,50 и 1,00 секунды.Некоторые из аргументов
-w
и-gjj
, указывают, что ввод, вместо использования stdin, должен быть обратным отсчетом от0xFF
до0x00
(затем перенос). Мы используем это, чтобы обеспечить младшие два бита для обратного отсчета. Все остальные выходные биты остаются постоянными (при значении, соответствующем ASCII0
).Наконец, как только мы закончим, мы завершаем программу
t
, предотвращая паузу после последнего номера.источник
[GAWK], 57 байт
Попробуйте онлайн!
источник