ขึ้นอยู่กับ "ไบนารี แต่เจ้าตัว" สัญกรณ์กล่าวถึงในวิดีโอ Numberphile นี้เขียนฟังก์ชั่นที่ใช้หมายเลขเดียวเป็น input และผลทุกรูปแบบของตัวเลขที่อยู่ในระบบ "ฐาน" ที่เจ้าตัวได้รับอนุญาต
กฎระเบียบ
- รหัสจะต้องเป็นฟังก์ชั่น / วิธีไม่ใช่โปรแกรมเต็มรูปแบบ
- อินพุตเป็นจำนวนเต็มที่ส่งผ่านเป็นพารามิเตอร์ตัวเดียวกับฟังก์ชัน
- เอาท์พุทเป็นรูปแบบที่ถูกต้องทั้งหมดของหมายเลขอินพุตที่แปลงเป็น "ไบนารี แต่ด้วยเครื่องหมายสอง"
- เอาท์พุทเป็นค่าตอบแทนของฟังก์ชั่น แต่สามารถอยู่ในรูปแบบใดก็ได้ที่สะดวกตราบเท่าที่มันชัดเจน (เช่น 3 ints, 3 สตริง, สตริงคั่นด้วยเครื่องหมายจุลภาค / ช่องว่าง, อาร์เรย์ของ ints, ฯลฯ ) ลำดับไม่สำคัญ
- ในกรณีที่ไม่น่าเป็นไปได้ที่ภาษาจะมีฟังก์ชันในตัวเพื่อให้ได้ผลลัพธ์ก็จะไม่ได้รับอนุญาต
- รหัสที่สั้นที่สุดในหน่วยไบต์เป็นผู้ชนะ
คำอธิบายของการส่งออก
ตัวอย่างเช่นหากคุณผ่านหมายเลข9
คุณสามารถแปลงเป็นไบนารี่เป็น1001
แต่ถ้าคุณอนุญาตให้2
s ในแต่ละตำแหน่งคุณสามารถเขียนมันเป็น201
(เช่น2*4 + 0*2 + 1*1
) หรือ121
(เช่น1*4 + 2*2 + 1*1
) ดังที่แสดงในตารางนี้:
+----+----+----+----+
| 8s | 4s | 2s | 1s |
+----+----+----+----+
| 1 | 0 | 0 | 1 |
| 0 | 2 | 0 | 1 |
| 0 | 1 | 2 | 1 |
+----+----+----+----+
ดังนั้นถ้าผ่าน9
ฟังก์ชั่นของคุณจะต้องกลับหมายเลขสาม1001
, และ201
121
รูปแบบและการสั่งซื้อไม่เกี่ยวข้องตราบเท่าที่มันเห็นได้ชัด (เช่น[121,201,1001]
, "0201 0121 1001"
, ("1001","121","201")
เป็นผลที่ถูกต้องเมื่อได้รับการป้อนข้อมูลของ9
)
ตัวอย่าง
2
=>10, 2
9
=>1001, 201, 121
10
=>1010, 210, 202, 1002, 122
23
=>2111, 10111
37
=>100101, 20101, 100021, 20021, 12101, 12021, 11221