(Назва з подякою @ChasBrown)
Фон
Цей виклик натхненний питанням, яке я нещодавно опублікував на Puzzling Stack Exchange . Будь ласка, не соромтесь перейти за посиланням, якщо вас цікавить оригінальне запитання. Якщо ні, то я не набридаю вам тут деталями.
Факти
Кожен стандартний символ ASCII для друку має десяткову величину від 32 до 126 включно. Вони можуть бути перетворені у відповідні їм двійкові числа в діапазоні від 100000 до 1111110 включно. Підсумовуючи біти цих двійкових чисел, у вас завжди буде ціле число від 1 до 6 включно.
Змагання
Враховуючи ціле число від 1 до 6 включно, введіть програму або функцію, яка видасть у будь-якому прийнятному форматі всі стандартні символи ASCII для друку, де сума бітів їх двійкового значення дорівнює цілому числу введення.
Приклади / Випробування
1 -> ' @'
2 -> '!"$(0ABDHP`'
3 -> '#%&)*,1248CEFIJLQRTXabdhp'
4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx'
5 -> '/7;=>OW[]^gkmnsuvyz|'
6 -> '?_ow{}~'
Тут не доступна реалізована посилання на реалізацію Python (TIO) .
Правила
- Припустимо, що вхід завжди буде цілим числом (або рядковим поданням цілого числа) від 1 до 6 включно.
- Ви можете написати програму для відображення результатів або функцію їх повернення.
- Вихід може бути у будь-якому розумному форматі, але повинен бути узгодженим для всіх вхідних даних . Якщо ви вирішили вивести рядок, що цитується, то для всіх вхідних даних слід використовувати однаковий тип лапок.
- Стандартні лазівки заборонені, як зазвичай.
- Це код гольфу, тому найкоротший код на кожній мові виграє.
') для представлення рядка рядка за замовчуванням, але використовує подвійні лапки ( "), якщо рядок містить одну цитату і немає подвійних лапок . Не те, що цей конкретний випадок матиме велике значення, оскільки вам, мабуть, краще повернути фактичний рядок замість його подання, і ви все одно можете використовувати одинарні лапки в такому рядку для введення, але я вважаю, що тут варто згадати.
« »)? : D


63vs?)?