(Titel mit Dank an @ChasBrown)
Der Hintergrund
Diese Herausforderung ist von einer Frage inspiriert, die ich kürzlich bei Puzzling Stack Exchange gepostet habe . Bitte folgen Sie dem Link, wenn Sie an der ursprünglichen Frage interessiert sind. Wenn nicht, dann werde ich Sie hier nicht mit den Details langweilen.
Die Fakten
Jedes druckbare Standard-ASCII-Zeichen hat einen Dezimalwert zwischen einschließlich 32 und 126. Diese können in ihre entsprechenden Binärzahlen im Bereich von 100000 bis einschließlich 1111110 konvertiert werden. Wenn Sie die Bits dieser Binärzahlen summieren, erhalten Sie immer eine ganze Zahl zwischen 1 und 6 einschließlich.
Die Herausforderung
Wenn eine ganze Zahl zwischen 1 und 6 als Eingabe angegeben wird, schreiben Sie ein Programm oder eine Funktion, die alle druckbaren Standard-ASCII-Zeichen in einem akzeptablen Format ausgibt, wobei die Summe der Bits ihres Binärwerts gleich der eingegebenen ganzen Zahl ist.
Die Beispiele / Testfälle
1 -> ' @'
2 -> '!"$(0ABDHP`'
3 -> '#%&)*,1248CEFIJLQRTXabdhp'
4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx'
5 -> '/7;=>OW[]^gkmnsuvyz|'
6 -> '?_ow{}~'
Eine ungolfed Python-Referenzimplementierung ist hier verfügbar (TIO) .
Die Regeln
- Angenommen, die Eingabe ist immer eine Ganzzahl (oder eine Zeichenfolgendarstellung einer Ganzzahl) zwischen 1 und einschließlich 6.
- Sie können ein Programm schreiben, um die Ergebnisse anzuzeigen, oder eine Funktion, um sie zurückzugeben.
- Die Ausgabe kann in jedem vernünftigen Format erfolgen, muss jedoch für alle Eingaben konsistent sein . Wenn Sie eine Zeichenfolge in Anführungszeichen ausgeben möchten, muss für alle Eingaben derselbe Anführungszeichentyp verwendet werden.
- Standardlücken wie gewohnt verboten.
- Dies ist Code Golf, so dass der kürzeste Code in jeder Sprache gewinnt.
') für die Zeichenfolgendarstellung einer Zeichenfolge, verwendet jedoch doppelte Anführungszeichen ( "), wenn die Zeichenfolge ein einfaches Anführungszeichen und keine doppelten Anführungszeichen enthält . Nicht, dass dieser spezielle Fall von Bedeutung wäre, da Sie wahrscheinlich besser die tatsächliche Zeichenfolge als deren Darstellung zurückgeben sollten und Sie trotzdem einfache Anführungszeichen in einer solchen Zeichenfolge für die Eingabe verwenden können, aber ich denke, dass es hier erwähnenswert ist.
« »)? : D


63vs?) haben?