Hamming mesafesi eşit uzunlukta iki sırası arasındaki karşılık gelen simgeler farklı olan pozisyonların sayısıdır.
Izin Pvermek bir ikili dize uzunluğu nve Tbir ikili dize uzunluğu 2n-1. Soldan sağa sırayla nHamming mesafelerini Pve her nuzunluktaki alt dizelerini hesaplayabilir Tve bunları bir diziye (veya listeye) koyabiliriz.
Örnek Hamming mesafe sırası
Bırakın P = 101ve T = 01100. Bu çiftten aldığınız Hamming mesafelerinin sırası 2,2,1.
Görev
Artan İçin nbaşlayan n=1ikili dizeleri tüm olası çiftleri dikkate Puzunluğu nve Tuzunluk 2n-1. Öyle 2**(n+2n-1)çiftler var ve bu nedenle Hamming mesafelerinin birçok dizisi var. Bununla birlikte, bu dizilerin çoğu aynı olacaktır. Görev, her biri için kaç tanesinin farklı olduğunu bulmaktır n.
Kodunuzun değeri başına bir sayı çıkmalıdır n.
Puan
Puanınız nkodunuzun 5 dakika içinde makinemde ulaştığı en yüksek puan . Zamanlama, sadece bunun için değil toplam çalışma süresi içindir n.
Kim kazanır
En yüksek puanı alan kişi kazanır. İki veya daha fazla kişi aynı puanı alırsa, kazanan ilk cevaptır.
Örnek cevaplar
İçin ngelen 1için 8cevaplar optimum 2, 9, 48, 297, 2040, 15425, 125232, 1070553.
Diller ve kütüphaneler
İstediğiniz dil ve kitaplıkları kullanabilirsiniz. Mümkün olduğunda, kodunuzu çalıştırabilmeniz iyi olur, bu nedenle lütfen mümkünse kodunuzu Linux'ta nasıl çalıştıracağınız / derleyeceğinize ilişkin tam bir açıklama ekleyin.
Benim Makine zamanlamaları benim 64 bit makinede işletilecek. Bu, 8GB RAM, AMD FX-8350 Sekiz Çekirdekli İşlemci ve Radeon HD 4250 ile standart bir ubuntu yüklemesidir. Bu aynı zamanda kodunuzu çalıştırabilmem gerektiği anlamına gelir.
Öncü cevaplar
- 11 de C ++ feersum ile. 25 saniye.
- 11 yılında C ++ Andrew Epstein tarafından. 176 saniye.
- 10 yılında Javascript Neil tarafından. 54 saniye.
- 9 içinde Haskell'e niml ile. 4 dakika 59 saniye.
- 8 yılında Javascript fənɛtɪk tarafından. 10 saniye.
fastest-codeyaprakları kod seviyesi optimizasyonlar hem yoluyla optimizasyonlar için daha fazla alan ve iyi bir algoritma. Bence bunun faster-codedaha iyi olduğunu düşünüyorum faster-algorithm.