The Hamming jarak antara dua string dengan panjang yang sama adalah jumlah posisi di mana yang sesuai simbol yang berbeda.
Membiarkan P
menjadi string biner panjang n
dan T
menjadi string biner panjang 2n-1
. Kita dapat menghitung n
jarak Hamming antara P
dan setiap n
substring T
dengan panjang dari kiri ke kanan dan menempatkannya ke dalam array (atau daftar).
Contoh urutan jarak Hamming
Biarkan P = 101
dan T = 01100
. Urutan jarak Hamming yang Anda dapatkan dari pasangan ini adalah 2,2,1
.
Tugas
Untuk meningkatkan n
mulai dari n=1
, pertimbangkan semua pasangan yang mungkin dari string biner P
panjang n
dan T
panjang 2n-1
. Ada 2**(n+2n-1)
pasangan seperti itu dan karenanya banyak urutan jarak Hamming. Namun banyak dari sekuens tersebut akan identik. Tugasnya adalah menemukan berapa banyak yang berbeda untuk masing-masing n
.
Kode Anda harus menampilkan satu nomor per nilai n
.
Skor
Skor Anda adalah tertinggi yang dicapai n
kode Anda di mesin saya dalam 5 menit. Waktunya adalah total waktu berjalan, bukan hanya waktu untuk itu n
.
Yang menang
Orang dengan skor tertinggi menang. Jika dua orang atau lebih berakhir dengan skor yang sama maka itu adalah jawaban pertama yang menang.
Contoh jawaban
Untuk n
dari 1
ke 8
jawaban optimal adalah 2, 9, 48, 297, 2040, 15425, 125232, 1070553
.
Bahasa dan perpustakaan
Anda dapat menggunakan bahasa dan perpustakaan yang tersedia yang Anda suka. Jika memungkinkan, alangkah baiknya untuk dapat menjalankan kode Anda, jadi harap sertakan penjelasan lengkap tentang cara menjalankan / mengkompilasi kode Anda di Linux jika memungkinkan.
Mesin Saya Pengaturan waktu akan dijalankan pada mesin 64-bit saya. Ini adalah instalasi ubuntu standar dengan RAM 8GB, Prosesor Delapan-Core AMD FX-8350 dan Radeon HD 4250. Ini juga berarti saya harus dapat menjalankan kode Anda.
Memimpin jawaban
- 11 dalam C ++ oleh feersum. 25 detik.
- 11 dalam C ++ oleh Andrew Epstein. 176 detik.
- 10 di Javascript oleh Neil. 54 detik.
- 9 di Haskell oleh nimi. 4 menit dan 59 detik.
- 8 di Javascript oleh fəˈnɛtɪk. 10 detik.
fastest-code
menyisakan lebih banyak ruang untuk optimasi melalui optimasi level kode dan algoritma yang baik. Jadi saya pikir itu faster-code
lebih baik daripada faster-algorithm
.