(Judul dengan terima kasih kepada @ChasBrown)
Latar belakang
Tantangan ini terinspirasi oleh pertanyaan yang baru-baru ini saya posting di Puzzling Stack Exchange . Silakan ikuti tautannya jika Anda tertarik dengan pertanyaan awal. Jika tidak maka saya tidak akan membuat Anda bosan dengan detailnya di sini.
Fakta
Setiap karakter ASCII standar yang dapat dicetak memiliki nilai desimal antara 32 dan 126 inklusif. Ini dapat dikonversi ke angka biner yang sesuai dalam kisaran 100000 hingga 1111110 inklusif. Saat Anda menjumlahkan bit angka biner ini, Anda akan selalu berakhir dengan integer antara 1 dan 6 inklusif.
Tantangan
Diberikan bilangan bulat antara 1 dan 6 inklusif sebagai input, tulis sebuah program atau fungsi yang akan menampilkan semua format ASCII yang dapat dicetak, semua karakter ASCII yang dapat dicetak dengan jumlah bit nilai binernya sama dengan integer input.
Contoh / Kasus Uji
1 -> ' @'
2 -> '!"$(0ABDHP`'
3 -> '#%&)*,1248CEFIJLQRTXabdhp'
4 -> ''+-.3569:<GKMNSUVYZ\cefijlqrtx'
5 -> '/7;=>OW[]^gkmnsuvyz|'
6 -> '?_ow{}~'
Implementasi referensi Python ungolfed tersedia di sini (TIO) .
Aturan
- Asumsikan input akan selalu berupa integer (atau representasi string integer) antara 1 dan 6 inklusif.
- Anda dapat menulis program untuk menampilkan hasil atau fungsi untuk mengembalikannya.
- Output mungkin dalam format yang masuk akal tetapi harus konsisten untuk semua input . Jika Anda memilih untuk mengeluarkan string yang dikutip maka jenis kutipan yang sama harus digunakan untuk semua input.
- Celah standar dilarang seperti biasa.
- Ini adalah kode golf sehingga kode terpendek di setiap bahasa menang.
'
) untuk representasi string dari suatu string secara default, tetapi menggunakan tanda kutip ganda ( "
) jika string berisi tanda kutip tunggal dan tidak ada tanda kutip ganda . Bukan berarti kasus spesifik ini akan sangat berarti, karena Anda mungkin lebih baik mengembalikan string yang sebenarnya daripada perwakilannya, dan Anda masih dapat menggunakan tanda kutip tunggal dalam string tersebut untuk input, tapi saya merasa layak untuk disebutkan di sini.
« »
)? : D
63
Vs?
)?