บทนำ
ในความท้าทายนี้เราจะจัดการกับการเรียงลำดับของจำนวนเต็มบวก การสั่งซื้อจะเป็นดังนี้:
3, 5, 7, 9, 11, ...
2*3, 2*5, 2*7, 2*9, 2*11, ...
4*3, 4*5, 4*7, 4*9, 4*11, ...
8*3, 8*5, 8*7, 8*9, 8*11, ...
16*3, 16*5, 16*7, 16*9, 16*11, ...
...
... 64, 32, 16, 8, 4, 2, 1
อันดับแรกเราแสดงจำนวนเต็มแปลกทั้งหมดที่มากกว่า 1 ในลำดับจากน้อยไปหามาก จากนั้นเราจะแสดงรายการจำนวนเต็มคี่สองครั้งที่มากกว่า 1 จากนั้น 4 ครั้งจากนั้น 8 ครั้งและต่อไปนี้: สำหรับkทั้งหมดเราแสดง2 kคูณจำนวนเต็มคี่ที่มากกว่า 1 ในลำดับที่สูงขึ้น ในที่สุดเราจะแสดงพลังของสองตามลำดับจากมากไปน้อยสิ้นสุดที่ 1 ทุกจำนวนเต็มบวกเกิดขึ้นใน "รายการ" นี้เพียงครั้งเดียว
เพิ่มเติมอย่างชัดเจนพิจารณาสองจำนวนเต็มบวกชัดเจนA = n · 2 PและB = m · 2 คิวที่n, ม. 1 ≥แปลกและP, Q ≥ 0 ดังนั้นAมาก่อนBในการสั่งซื้อหากหนึ่งในเงื่อนไขดังต่อไปนี้มี:
- n> 1 , m> 1และp <q
- 1 <n <mและp = q
- n> m = 1
- n = m = 1และp> q
การจัดเรียงนี้จะปรากฏในผลลัพธ์ทางคณิตศาสตร์ที่น่าประหลาดใจที่รู้จักกันในชื่อทฤษฎีบทของ Sharkovskiiซึ่งเกี่ยวข้องกับประเด็นของระบบพลวัต ฉันจะไม่เข้าไปดูรายละเอียดที่นี่
งาน
งานของคุณในการท้าทายนี้คือการคำนวณลำดับข้างต้น อินพุตของคุณเป็นจำนวนเต็มบวกAและBซึ่งอาจเท่ากับ ผลลัพธ์ของคุณเป็นค่าความจริงหากAมาก่อนBในการสั่งซื้อและค่าที่ผิดพลาดเป็นอย่างอื่น ถ้าA = Bผลลัพธ์ของคุณควรเป็นจริง คุณสามารถใช้AและBตามลำดับใดก็ได้ตราบใดที่คุณสอดคล้อง
คุณไม่ต้องกังวลเกี่ยวกับจำนวนเต็มล้น แต่อัลกอริทึมของคุณควรทำงานในทางทฤษฎีสำหรับอินพุตขนาดใหญ่โดยพลการ
กรณีทดสอบ
อินสแตนซ์ที่แท้จริง
3 11
9 6
48 112
49 112
158 158
36 24
14 28
144 32
32 32
32 8
3 1
1 1
อินสแตนซ์ที่เป็นเท็จ
1 2
1 5
11 5
20 25
2 8
256 255
256 257
72 52
2176 1216
2176 2496
a&1|~b&1&f(a/2,b/2)
ทำงานอย่างไร