ท้าทาย:
การป้อนข้อมูล:รายการของจำนวนเต็มบวกที่แตกต่างกันอยู่ในช่วงต่อ A ]
เอาท์พุท:จำนวนเต็ม: จำนวนครั้งที่รายการเป็นระลอกคลื่นน้อย-สับ สำหรับรายการนี่หมายถึงรายการถูกแบ่งออกเป็นสองส่วนและแบ่งเป็นสองส่วน (เช่น riffle-shuffling รายการ[1,2,3,4,5,6,7,8,9,10]
จะส่งผลครั้งเดียว[1,6,2,7,3,8,4,9,5,10]
ดังนั้นสำหรับความท้าทายนี้อินพุต[1,6,2,7,3,8,4,9,5,10]
จะส่งผลให้1
)
กฏท้าทาย:
- คุณสามารถสมมติว่ารายการจะมีจำนวนเต็มบวกในช่วง (หรือหากคุณเลือกที่จะมี 0-indexed input-list)
- คุณสามารถสมมติว่ารายการอินพุตทั้งหมดจะเป็นรายการ riffle-shuffled ที่ถูกต้องหรือรายการที่เรียงลำดับซึ่งไม่ได้สับ (ในกรณีที่เอาต์พุตเป็น
0
) - คุณสามารถสันนิษฐานว่ารายการอินพุตจะมีค่าอย่างน้อยสามค่า
ตัวอย่างทีละขั้นตอน:
การป้อนข้อมูล: [1,3,5,7,9,2,4,6,8]
Unshuffling ครั้งหนึ่งมันเคยกลายเป็น: [1,5,9,4,8,3,7,2,6]
เพราะทุกรายการแม้ 0 การจัดทำดัชนีมาก่อน[1, ,5, ,9, ,4, ,8]
แล้วทุกรายการ 0 [ ,3, ,7, ,2, ,6, ]
คี่จัดทำดัชนีหลังจากนั้น
ยังไม่ได้สั่งรายการดังนั้นเราจึงดำเนินการต่อไป:
การแยกรายการอีกครั้งจะกลายเป็น: [1,9,8,7,6,5,4,3,2]
อีกครั้งกลายเป็น: [1,8,6,4,2,9,7,5,3]
แล้ว: [1,6,2,7,3,8,4,9,5]
และในที่สุด: [1,2,3,4,5,6,7,8,9]
ซึ่งเป็นรายการที่สั่งซื้อ
เราเปิดตัวต้นฉบับ[1,3,5,7,9,2,4,6,8]
ห้าครั้งเพื่อให้ได้[1,2,3,4,5,6,7,8,9]
ผลลัพธ์5
ในกรณีนี้
กฎทั่วไป:
- นี่คือcode-golfดังนั้นคำตอบที่สั้นที่สุดในหน่วยไบต์ชนะ
อย่าปล่อยให้ภาษาโค้ดกอล์ฟกีดกันคุณจากการโพสต์คำตอบด้วยภาษาที่ไม่ได้เข้ารหัส พยายามหาคำตอบสั้น ๆ ที่เป็นไปได้สำหรับภาษาโปรแกรม 'ใด ๆ ' - กฎมาตรฐานใช้สำหรับคำตอบของคุณด้วยกฎ I / O เริ่มต้นดังนั้นคุณจึงได้รับอนุญาตให้ใช้ STDIN / STDOUT ฟังก์ชั่น / วิธีการที่มีพารามิเตอร์ที่เหมาะสมและประเภทผลตอบแทนโปรแกรมเต็มรูปแบบ การโทรของคุณ
- ช่องโหว่เริ่มต้นเป็นสิ่งต้องห้าม
- หากเป็นไปได้โปรดเพิ่มลิงก์พร้อมทดสอบรหัสของคุณ (เช่นTIO )
- นอกจากนี้ขอแนะนำให้เพิ่มคำอธิบายสำหรับคำตอบของคุณ
กรณีทดสอบ:
Input Output
[1,2,3] 0
[1,2,3,4,5] 0
[1,3,2] 1
[1,6,2,7,3,8,4,9,5,10] 1
[1,3,5,7,2,4,6] 2
[1,8,6,4,2,9,7,5,3,10] 2
[1,9,8,7,6,5,4,3,2,10] 3
[1,5,9,4,8,3,7,2,6,10] 4
[1,3,5,7,9,2,4,6,8] 5
[1,6,11,5,10,4,9,3,8,2,7] 6
[1,10,19,9,18,8,17,7,16,6,15,5,14,4,13,3,12,2,11,20] 10
[1,3,5,7,9,11,13,15,17,19,2,4,6,8,10,12,14,16,18,20] 17
[1,141,32,172,63,203,94,234,125,16,156,47,187,78,218,109,249,140,31,171,62,202,93,233,124,15,155,46,186,77,217,108,248,139,30,170,61,201,92,232,123,14,154,45,185,76,216,107,247,138,29,169,60,200,91,231,122,13,153,44,184,75,215,106,246,137,28,168,59,199,90,230,121,12,152,43,183,74,214,105,245,136,27,167,58,198,89,229,120,11,151,42,182,73,213,104,244,135,26,166,57,197,88,228,119,10,150,41,181,72,212,103,243,134,25,165,56,196,87,227,118,9,149,40,180,71,211,102,242,133,24,164,55,195,86,226,117,8,148,39,179,70,210,101,241,132,23,163,54,194,85,225,116,7,147,38,178,69,209,100,240,131,22,162,53,193,84,224,115,6,146,37,177,68,208,99,239,130,21,161,52,192,83,223,114,5,145,36,176,67,207,98,238,129,20,160,51,191,82,222,113,4,144,35,175,66,206,97,237,128,19,159,50,190,81,221,112,3,143,34,174,65,205,96,236,127,18,158,49,189,80,220,111,2,142,33,173,64,204,95,235,126,17,157,48,188,79,219,110,250]
45
[1,3,5,7,9,2,4,6,8]
ความยาว 9 แต่ฉันจะเพิ่มอีกสองสามอย่างสำหรับความยาว 7 และ 11 บางที แก้ไข: เพิ่มกรณีทดสอบ[1,3,5,7,2,4,6] = 2
(ความยาว 7) และ[1,6,11,5,10,4,9,3,8,2,7] = 6
(ความยาว 11) หวังว่าจะช่วย
[1,6,2,7,3,8,4,9,5,10]
หรือ[6,1,7,2,8,3,9,4,10,5]
เป็นไปได้ ในความท้าทายของฉันมันไม่ได้หมายความว่าบัตรด้านบนมักจะยังคงบัตรด้านบนเพื่อให้มันย่อมเป็นบิตของนักโทษเคล็ดลับ .. ผมไม่เคยเห็นใครบางคนใช้ชีวิตเพียง -ฟืระลอกคลื่นน้อยจะสับไพ่อย่างไร โดยปกติแล้วพวกเขายังใช้สับประเภทอื่น ๆ ในระหว่าง อย่างไรก็ตามมันก็สายเกินไปที่จะเปลี่ยนความท้าทายในตอนนี้ดังนั้นเพื่อความท้าทายนี้การ์ดอันดับต้น ๆ จะยังคงเป็นการ์ดอันดับสูงสุดเสมอหลังจากการสลับสับเปลี่ยน