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