У этого дорогого сайта StackExchange так много проблем и так много хороших ответов. Но как насчет проблем, которые никогда не были решены ?
задача
Напишите программу или функцию, которая будет печатать псевдослучайный открытый запрос без ответа (как, например, вопрос с ровно нулевым ответом) от PPCG. Все возможные проблемы должны создаваться с одинаковой вероятностью.
вход
- Вход не будет принят.
Вывод
- Должны быть только заголовок, теги и ссылка, которые должны быть разделены переводом строки.
- Название должно быть точно таким же, как в вызове.
- Теги не имеют строгого формата вывода, но должны включать все теги.
- Ссылка может включать или не включать
question-name
после идентификатора вопроса и должна привести к вызову.
- Может или не может быть переведен в удобочитаемый формат.
&
в&
- Лидирующие и конечные пробелы разрешены.
Примеры
Encode a steganographic encoder into a package
code-challenge,unicode,steganography
/codegolf/65159/encode-a-steganographic-encoder-into-a-package
Simple predictive keyboard CG
code-golf
/codegolf/76196/simple-predictive-keyboard-cg
счет
Как это Код-гольф, кратчайший ответ в байтах выигрывает.
code-golf
internet
stack-exchange-api
totallyhuman
источник
источник
Ответы:
JavaScript + HTML,
271250232 байтаОчевидно, вы можете использовать
Date
s в качестве псевдослучайных чисел. Я украл это из ответа Шегги .(Использует только около 4 вашей квоты)
Он создает массив
q
, затем вызываетg(1)
, который выбирает первую страницу результатов и добавляет ее к q. Затем, если запрос говорит этоhas_more
, то он вызываетg(f+1)
, который выбирает следующую страницу, пока не достигнет конца и не запишет в HTML-документ (который автоматически откроет ответ)Если нас не волнуют все оставшиеся без ответа вопросы, только самые последние 30 (используется только 1 ваша квота):
JavaScript + HTML,
213196179 байтисточник
j.has_more?g(f+1)
, попробуйте++f<5?g(f)
q=q.concat(j.items)
наq=[...q,...j.items]
. Похоже,Tags:
это необязательно, так что вы можете отказаться от этого тоже. И нет необходимостиjoin
q.tags
, он будет приведен в строку при соединении со строкой. Наконец, использование литерала шаблона для финала также должно сэкономить вам несколько байтов.Python + запросы + json + random + html,
249239 байтПолучилось дольше, чем хотелось бы.
-10 байт благодаря @totallyhuman, использующему,
R.choice
а неR.shuffle
принимающему первый элемент.источник
random.shuffle
?random.choice()
?.choice()
!r.get(url).json()
вместо этогоhas_more
. Это только случайный выбор из первых 30.Баш
255232 байтаПохоже, неправильные результаты возвращаются для итогов за отсутствие ответов / без ответа. Общая идея - получить общее количество, чем получить случайную страницу с одним элементом.
Баш
174153 байтаОн выбирает один случайный вопрос из последних 30, а не из всех вопросов. Работает из командной строки. Требуется
скручиваниеw3m, jq и перекодирование.результат:
источник