Pembaruan: Batas waktu dihapus. Anda harus dapat menggambarkan output - lihat aturan baru.
Sebuah pangram adalah kalimat yang menggunakan setiap huruf dalam alfabet setidaknya sekali, seperti:
Sebuah sempurna pangram menggunakan setiap huruf tepat sekali.
Pertimbangkan untuk menulis program yang merupakan pangram sempurna, menggunakan 95 karakter ASCII yang dapat dicetak (kode hex 20 hingga 7E) sebagai alfabet:
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
Program semacam itu harus mengandung tepat 95 karakter, dengan setiap karakter ASCII yang dapat dicetak muncul tepat sekali, tetapi dalam urutan apa pun. (Dengan demikian ada 95! = 1,03 × 10 148 kemungkinan.)
Tugas Anda adalah menulis program ini sedemikian sehingga jumlah karakter ASCII yang dapat dicetak yang dicetak ke stdout setinggi mungkin (mis. Produktif).
Skor Anda adalah jumlah karakter ASCII yang dapat dicetak yang dihasilkan program Anda ( jumlah total , bukan jumlah yang berbeda : AABC
skor 4 sedangkan ABC
skor 3) . Skor tertinggi menang.
Detail
- Keluaran dapat berisi karakter apa saja (termasuk duplikat) tetapi hanya contoh dari 95 karakter ASCII yang dapat dicetak yang dihitung untuk skor Anda.
- Anda dapat menggunakan JSFiddle ini untuk menghitung jumlah karakter ASCII yang dapat dicetak dalam string apa pun.
- Jika bahasa Anda tidak memiliki stdout gunakan alternatif yang paling tepat.
- Program anda ...
- harus memiliki runtime yang terbatas (batas waktu telah dihapus)
- harus memiliki keluaran yang terbatas
- dapat berisi komentar
- harus mengkompilasi dan menjalankan tanpa kesalahan (tidak tertangkap)
- tidak boleh meminta atau membutuhkan input
- harus waktu invarian dan deterministik
- tidak boleh menggunakan perpustakaan eksternal
- harus tidak memerlukan koneksi jaringan
- tidak boleh menggunakan file eksternal
- (Anda dapat menggunakan file program itu sendiri selama mengubah nama file tidak mengubah perilaku program)
- Jika tugas ini tidak mungkin adalah beberapa bahasa yang terlalu buruk.
- Anda harus memberikan output yang tepat atau menggambarkannya dengan tepat jika terlalu besar untuk dimuat dalam sebuah posting . Anda sebenarnya tidak harus menjalankan program Anda. Selama itu akan berjalan dalam jumlah waktu yang terbatas pada komputer dengan jumlah memori yang tidak terbatas itu valid.
Contoh
Program Python 2 sederhana ini adalah solusi yang memungkinkan:
print 9876543210#!"$%&'()*+,-./:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjklmoqsuvwxyz{|}~
Ini output 9876543210
yang berisi 10 karakter ASCII yang dapat dicetak, sehingga mencetak 10.
a
enam kuadriliun kali, di mana bahkan tidak mungkin untuk mendapatkan batas atas yang akurat pada jumlah karakter. Lagi pula, saya masih bangga dengan 95 saya, bahkan jika itu agak kecil. Ukuran bukan segalanya, Anda tahu.