(Título com agradecimentos a @ChasBrown)
O fundo
Esse desafio é inspirado em uma pergunta que eu postei recentemente no Puzzling Stack Exchange . Por favor, sinta-se livre para seguir o link se você estiver interessado na pergunta original. Caso contrário, não vou aborrecê-lo com os detalhes aqui.
Os fatos
Cada caractere ASCII padrão imprimível tem um valor decimal entre 32 e 126, inclusive. Eles podem ser convertidos em seus números binários correspondentes no intervalo de 100000 a 1111110, inclusive. Quando você soma os bits desses números binários, sempre termina com um número inteiro entre 1 e 6, inclusive.
O desafio
Dado um número inteiro entre 1 e 6, inclusive como entrada, escreva um programa ou função que produzirá em qualquer formato aceitável todos os caracteres ASCII padrão imprimíveis, em que a soma dos bits de seu valor binário é igual ao número inteiro de entrada.
Os exemplos / casos de teste
1 -> ' @'
2 -> '!"$(0ABDHP`'
3 -> '#%&)*,1248CEFIJLQRTXabdhp'
4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx'
5 -> '/7;=>OW[]^gkmnsuvyz|'
6 -> '?_ow{}~'
Uma implementação de referência Python não-gasta está disponível aqui (TIO) .
As regras
- Suponha que a entrada sempre será um número inteiro (ou representação de string de um número inteiro) entre 1 e 6, inclusive.
- Você pode escrever um programa para exibir os resultados ou uma função para devolvê-los.
- A saída pode estar em qualquer formato razoável, mas deve ser consistente para todas as entradas . Se você optar por gerar uma string entre aspas, o mesmo tipo de aspas deverá ser usado para todas as entradas.
- Brechas padrão proibidas como de costume.
- Este é um código de golfe, pelo que o código mais curto em cada idioma vence.
') para a representação de uma string por padrão, mas usa aspas duplas ( ") se a string contiver uma aspas simples e sem aspas duplas . Não que esse caso específico seja importante, pois é melhor você retornar a string real em vez de sua representação, e ainda assim você pode usar aspas simples nessa string para entrada, mas acho que vale a pena mencionar aqui.
« »)? : D


63vs?)?