(Titolo con grazie a @ChasBrown)
Lo sfondo
Questa sfida è ispirata a una domanda che ho pubblicato di recente su Puzzling Stack Exchange . Non esitate a seguire il link se siete interessati alla domanda originale. In caso contrario, non ti annoierò con i dettagli qui.
I fatti
Ogni carattere ASCII standard stampabile ha un valore decimale compreso tra 32 e 126 inclusi. Questi possono essere convertiti nei corrispondenti numeri binari nell'intervallo compreso tra 100000 e 1111110 inclusi. Quando sommi i bit di questi numeri binari, finirai sempre con un numero intero compreso tra 1 e 6 inclusi.
La sfida
Dato un numero intero compreso tra 1 e 6 compreso come input, scrivere un programma o una funzione che genererà in qualsiasi formato accettabile tutti i caratteri ASCII standard stampabili in cui la somma dei bit del loro valore binario è uguale al numero intero di input.
Gli esempi / casi di test
1 -> ' @'
2 -> '!"$(0ABDHP`'
3 -> '#%&)*,1248CEFIJLQRTXabdhp'
4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx'
5 -> '/7;=>OW[]^gkmnsuvyz|'
6 -> '?_ow{}~'
Un'implementazione di riferimento Python non golfata è disponibile qui (TIO) .
Le regole
- Supponiamo che l'input sia sempre un numero intero (o rappresentazione in stringa di un numero intero) compreso tra 1 e 6 inclusi.
- È possibile scrivere un programma per visualizzare i risultati o una funzione per restituirli.
- L'output può essere in qualsiasi formato ragionevole ma deve essere coerente per tutti gli input . Se si sceglie di generare una stringa tra virgolette, è necessario utilizzare lo stesso tipo di virgolette per tutti gli input.
- Scappatoie standard vietate come al solito.
- Questo è il codice golf, quindi vince il codice più breve in ogni lingua.
') per la rappresentazione di stringa di una stringa per impostazione predefinita, ma utilizza virgolette doppie ( ") se la stringa contiene una virgoletta singola e nessuna virgoletta doppia . Non che questo caso specifico sia molto importante, poiché probabilmente stai meglio restituendo la stringa effettiva invece della sua rappresentazione, e puoi comunque usare virgolette singole in tale stringa per l'input comunque, ma penso che valga la pena menzionare qui.
« »)? : D


63Vs?)?