พื้นหลัง
น้ำหนัก Hammingของจำนวนเต็มคือจำนวนของคนในการเป็นตัวแทนไบนารี สำหรับความท้าทายนี้จำนวนเต็มจะถูกแทนด้วย 32 บิตและไม่ได้ลงนาม
ท้าทาย
กำหนดจำนวนเต็มตั้งแต่ 0 ถึง 2 ^ 32-1 (ไม่รวม) ส่งออกจำนวนเต็มที่แตกต่างกันในช่วงเดียวกันและยังมีน้ำหนัก Hamming เดียวกัน
ตัวอย่าง
Input (Decimal) | Input (Binary) | Hamming weight | Possible output (Decimal)
46 | 0b0010 1110 | 4 | 15
12 | 0b0000 1100 | 2 | 3
1 | 0b0000 0001 | 1 | 2
3 | 0b0000 0011 | 2 | 6
2^31 | 0b1000....0 | 1 | 1
2^31+2 | 0b1000...10 | 2 | 3
2^32-5 | 0b1111..011 | 31 | 2^31-1
2^32-2 | 0b1111....0 | 31 | 2^31-1
0 | 0b0000 0000 | 0 | None (This case need not be handled)
2^32-1 | 0b1111....1 | 32 | None (This case need not be handled)
เกณฑ์การให้คะแนน
นี่คือโค้ดกอล์ฟดังนั้นการแก้ปัญหาในจำนวนไบต์น้อยที่สุดในแต่ละภาษาชนะ
2^31+2
ฉันจะทำซ้ำที่ฉันพูดจำนวนคี่ คำตอบในคำถามล้มเหลวก็ต่อเมื่อทั้งบิตสูงสุดและบิตต่ำสุด1
เท่านั้น