ระยะ Hammingระหว่างสองสายความยาวเท่ากันคือจำนวนของตำแหน่งที่สัญลักษณ์ที่สอดคล้องกันจะแตกต่างกัน
ให้P
เป็นสตริงไบนารีของความยาวn
และเป็นสตริงไบนารีของความยาวT
2n-1
เราสามารถคำนวณn
ระยะทาง Hamming ระหว่างP
และn
สตริงย่อย -length ของT
ตามลำดับจากซ้ายไปขวาและใส่ลงในอาร์เรย์ (หรือรายการ)
ตัวอย่างลำดับระยะทาง Hamming
ขอและP = 101
T = 01100
ลำดับของ Hamming 2,2,1
ระยะทางที่คุณได้รับจากคู่นี้คือ
งาน
สำหรับการn
เริ่มต้นที่เพิ่มขึ้นn=1
ให้พิจารณาคู่สายอักขระไบนารีที่มีP
ความยาวn
และT
ความยาวที่เป็น2n-1
ไปได้ทั้งหมด มี2**(n+2n-1)
คู่ดังกล่าวและด้วยเหตุนี้จึงมีหลายลำดับของระยะทาง Hamming อย่างไรก็ตามลำดับเหล่านั้นจำนวนมากจะเหมือนกัน n
งานคือการหาวิธีการจำนวนมากที่แตกต่างกันสำหรับแต่ละ
n
รหัสของคุณควรส่งออกจำนวนหนึ่งต่อมูลค่าของ
คะแนน
คะแนนของคุณคือn
รหัสสูงสุดของคุณถึงบนเครื่องของฉันใน 5 นาที n
ระยะเวลาเป็นเวลาการทำงานรวมเวลาไม่เพียงแค่นั้น
ใครชนะ
ผู้ที่มีคะแนนสูงสุดจะเป็นผู้ชนะ หากคนสองคนหรือมากกว่านั้นจบลงด้วยคะแนนเดียวกันมันเป็นคำตอบแรกที่ชนะ
ตัวอย่างคำตอบ
สำหรับการn
จาก1
ไปคำตอบที่ดีที่สุดที่มี8
2, 9, 48, 297, 2040, 15425, 125232, 1070553
ภาษาและห้องสมุด
คุณสามารถใช้ภาษาและไลบรารี่ที่คุณต้องการได้ หากเป็นไปได้จะเป็นการดีที่จะสามารถเรียกใช้รหัสของคุณได้ดังนั้นโปรดระบุคำอธิบายโดยละเอียดเกี่ยวกับวิธีเรียกใช้ / รวบรวมรหัสของคุณใน Linux หากเป็นไปได้
My Machineการจับเวลาจะทำงานบนเครื่อง 64 บิตของฉัน นี่คือการติดตั้ง Ubuntu แบบมาตรฐานที่มี 8GB RAM, AMD FX-8350 Eight-Core Processor และ Radeon HD 4250 นี่หมายความว่าฉันต้องสามารถเรียกใช้รหัสของคุณได้
คำตอบชั้นนำ
- 11ในC ++โดย feersum 25 วินาที
- 11ในC ++โดย Andrew Epstein 176 วินาที
- 10ในJavascriptโดย Neil 54 วินาที
- 9ในHaskellโดย nimi 4 นาทีและ 59 วินาที
- 8ในJavascriptโดย fəˈnɛtɪk 10 วินาที
fastest-code
ทำให้มีพื้นที่มากขึ้นสำหรับการปรับให้เหมาะสมผ่านทั้งการปรับระดับรหัสและอัลกอริทึมที่ดี ดังนั้นผมจึงคิดว่าจะดีกว่าfaster-code
faster-algorithm