การป้อนข้อมูล:
เรารับสองอินพุต:
- การป้อนข้อมูล
b
ที่มีสองค่าที่แตกต่างกันและLeft
†Right
n
และเป็นจำนวนเต็มบวก
เอาท์พุท:
ขึ้นอยู่กับอินพุตซ้าย / ขวาเราแสดงเอาต์พุตสองซีเควนต่อไปนี้ในช่วงของ1-n
(ในลำดับด้านล่างที่แสดง 125 รายการแรก):
Left:
1, 6, 7, 56, 57, 62, 63, 960, 961, 966, 967, 1016, 1017, 1022, 1023, 31744, 31745, 31750, 31751, 31800, 31801, 31806, 31807, 32704, 32705, 32710, 32711, 32760, 32761, 32766, 32767, 2064384, 2064385, 2064390, 2064391, 2064440, 2064441, 2064446, 2064447, 2065344, 2065345, 2065350, 2065351, 2065400, 2065401, 2065406, 2065407, 2096128, 2096129, 2096134, 2096135, 2096184, 2096185, 2096190, 2096191, 2097088, 2097089, 2097094, 2097095, 2097144, 2097145, 2097150, 2097151, 266338304, 266338305, 266338310, 266338311, 266338360, 266338361, 266338366, 266338367, 266339264, 266339265, 266339270, 266339271, 266339320, 266339321, 266339326, 266339327, 266370048, 266370049, 266370054, 266370055, 266370104, 266370105, 266370110, 266370111, 266371008, 266371009, 266371014, 266371015, 266371064, 266371065, 266371070, 266371071, 268402688, 268402689, 268402694, 268402695, 268402744, 268402745, 268402750, 268402751, 268403648, 268403649, 268403654, 268403655, 268403704, 268403705, 268403710, 268403711, 268434432, 268434433, 268434438, 268434439, 268434488, 268434489, 268434494, 268434495, 268435392, 268435393, 268435398, 268435399, 268435448, 268435449
Right:
1, 4, 7, 32, 39, 56, 63, 512, 527, 624, 639, 896, 911, 1008, 1023, 16384, 16415, 16864, 16895, 19968, 19999, 20448, 20479, 28672, 28703, 29152, 29183, 32256, 32287, 32736, 32767, 1048576, 1048639, 1050560, 1050623, 1079296, 1079359, 1081280, 1081343, 1277952, 1278015, 1279936, 1279999, 1308672, 1308735, 1310656, 1310719, 1835008, 1835071, 1836992, 1837055, 1865728, 1865791, 1867712, 1867775, 2064384, 2064447, 2066368, 2066431, 2095104, 2095167, 2097088, 2097151, 134217728, 134217855, 134225792, 134225919, 134471680, 134471807, 134479744, 134479871, 138149888, 138150015, 138157952, 138158079, 138403840, 138403967, 138411904, 138412031, 163577856, 163577983, 163585920, 163586047, 163831808, 163831935, 163839872, 163839999, 167510016, 167510143, 167518080, 167518207, 167763968, 167764095, 167772032, 167772159, 234881024, 234881151, 234889088, 234889215, 235134976, 235135103, 235143040, 235143167, 238813184, 238813311, 238821248, 238821375, 239067136, 239067263, 239075200, 239075327, 264241152, 264241279, 264249216, 264249343, 264495104, 264495231, 264503168, 264503295, 268173312, 268173439, 268181376, 268181503, 268427264, 268427391
คุณสร้างลำดับเหล่านี้อย่างไร
ลำดับเริ่มต้นจาก 1 ถึงn=10
จะเป็น:
As integer:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
As binary:
1 10 11 100 101 110 111 1000 1001 1010
เมื่อเรายืดซ้ายไบนารีจะกลายเป็นสิ่งนี้:
1, 110, 111, 111000, 111001, 111110, 111111, 1111000000, 1111000001, 1111000110
ทำไม? บิตสุดท้ายใช้ครั้งเดียว ใช้ครั้งเดียวครั้งสุดท้าย ครั้งที่สองที่ผ่านมามีการใช้สามครั้ง; เป็นต้น
So `1010` will become (spaces added as clarification): `1111 000 11 0`
และสตริงไบนารี่ที่ยืดออกใหม่เหล่านี้จะถูกแปลงกลับไปเป็นจำนวนเต็ม:
1, 6, 7, 56, 57, 62, 63, 960, 961, 966
สำหรับการยืดขวาบิตแรกจะถูกใช้เพียงครั้งเดียว ที่สองครั้งที่สอง; สามครั้ง เช่นนี้
As binary:
1, 100, 111, 100000, 100111, 111000, 111111, 1000000000, 1000001111, 1001110000
As integer:
1, 4, 7, 32, 39, 56, 63, 512, 527, 624
กฏท้าทาย:
- †คุณสามารถรับค่าสองค่าที่แตกต่างกัน แต่ระบุว่าคุณใช้ค่าใด เพื่อที่จะสามารถ
1/0
,true/false
,null/undefined
,"left"/"right"
ฯลฯ n
มากกว่า 0 เสมอ- คุณควรรองรับเอาต์พุตสูงสุดอย่างน้อยจำนวนเต็มเริ่มต้นของภาษาของคุณ (ซึ่งเป็น 32- บิตสำหรับภาษาส่วนใหญ่)
- รูปแบบผลลัพธ์มีความยืดหยุ่น สามารถพิมพ์หรือคืนเป็นอาร์เรย์ / รายการ สามารถมีช่องว่างเครื่องหมายจุลภาคท่อและเหมือนตัวคั่น การโทรของคุณ (โปรดระบุสิ่งที่คุณใช้อีกครั้ง)
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในจำนวนไบต์ชนะ
อย่าปล่อยให้ภาษาที่ใช้รหัสกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ codegolfing พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานจะใช้สำหรับคำตอบของคุณดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีการที่มีพารามิเตอร์ที่เหมาะสมและชนิดผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงค์พร้อมทดสอบรหัสของคุณ
- นอกจากนี้โปรดเพิ่มคำอธิบายหากจำเป็น
n < 128
เพื่อให้ได้ผลลัพธ์ที่พอดีกับจำนวนเต็ม 32 บิต