การเขียนโปรแกรมปริศนา & รหัสกอล์ฟ

คำถาม & คำตอบสำหรับผู้ชื่นชอบการเขียนโปรแกรมปริศนา

30
สร้าง UUID แบบสุ่ม
ฉันต้องการ UUID งานของคุณคือการสร้าง canonical UUID (Universally Unique IDentifier) ​​เป็นเลขฐานสิบหก 32 หลักพร้อมเครื่องหมายขีดคั่นในบางจุดโปรแกรมควรแสดงผลตัวเลขฐานสิบหก 32 (128 บิต) ในรูปแบบของxxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx( 8-4-4-4-12หลัก) ซึ่งxเป็นเลขฐานสิบหกแบบสุ่ม สมมติว่า PRNG ของภาษาคุณสมบูรณ์แบบผลลัพธ์ที่ถูกต้องทั้งหมดจะต้องมีความน่าจะเป็นเหมือนกัน TL; DR สร้างตัวเลขฐานสิบหกแบบสุ่ม 32 หลักในรูปแบบ8-4-4-4-12หลัก รหัสที่สั้นที่สุดชนะ แก้ไข: ต้องเป็นเลขฐานสิบหก การสร้างทศนิยมเพียงอย่างเดียวไม่ถูกต้องเสมอไป แก้ไข 2: ไม่มีบิวด์อิน นี่ไม่ใช่ GUID เพียงแค่เลขฐานสิบหกทั่วไป ตัวอย่างผลลัพธ์: ab13901d-5e93-1c7d-49c7-f1d67ef09198 7f7314ca-3504-3860-236b-cface7891277 dbf88932-70c7-9ae7-b9a4-f3df1740fc9c c3f5e449-6d8c-afe3-acc9-47ef50e7e7ae e9a77b51-6e20-79bd-3ee9-1566a95d9ef7 7b10e43c-3c57-48ed-a72a-f2b838d8374b อินพุตและช่องโหว่มาตรฐานไม่ได้รับอนุญาต นี่คือรหัส - กอล์ฟดังนั้นรหัสที่สั้นที่สุดจึงชนะ นอกจากนี้อย่าลังเลที่จะขอคำชี้แจง
15 code-golf  random 

1
เลขคณิต… tock …ติ๊ก… tock
คำถามนี้นำมาให้คุณโดยเกมที่ฉันชอบเล่นเมื่อติดอยู่ในการประชุมทางโทรศัพท์ที่ยาวนาน ให้สองเท่าจากนาฬิกา 24 ชั่วโมง (จาก 00:00 ถึง 23:59) จะสามารถสร้างสมการทางคณิตศาสตร์ที่ถูกต้องได้กี่ครั้งโดยใช้การดำเนินการทางคณิตศาสตร์พื้นฐานเท่านั้น อินพุต:สตริงสองสี่หลัก (ไม่มีโคลอน) แทนเวลาที่ถูกต้องในรอบ 24 ชั่วโมง ตัวอย่าง: สำหรับอินพุต = 0000, 1300 03:26 produces: "0+3*2=6" and "03*2=6" etc. 11:10 produces quite a few, including: "1*1=1+0" and "1=1=1^0" and "1=11^0" etc. 12:24 produces: "1/2=2/4" and "1=(2*2)/4" etc. การดำเนินการที่ถูกต้องคือ: ส่วนที่เพิ่มเข้าไป การลบ การคูณ ส่วน (จุดลอย) การยกกำลัง …

3
ให้เส้นทาง
ท้าทาย คุณได้มอบแผนที่ให้กับเพื่อนที่มีลักษณะดังนี้: | / | / | \ | \ D แผนที่ง่าย ๆ ที่เริ่มต้นที่ด้านบนและสิ้นสุดที่ด้านล่าง น่าเศร้าที่เพื่อนของคุณไม่เข้าใจ คุณสามารถถอดรหัสแผนที่เพื่อให้เขาอ่านได้หรือไม่? อินพุต การป้อนข้อมูลที่เป็นสายอักขระประกอบด้วย|, /, \, D, ^, Y, (เว้นวรรค)และการขึ้นบรรทัดใหม่ | บอกให้อยู่ในคอลัมน์เดียวกัน \ บอกให้ย้ายไปที่คอลัมน์ด้านขวาและลง 1 / บอกให้ย้ายไปที่คอลัมน์ทางซ้ายและลง 1 D ทำเครื่องหมายปลายทาง ^ (ถ้ามี) บอกการแยกในเส้นทาง Y(ถ้ามี) บอกถึงการเข้าร่วมเส้นทาง |รักษามันเหมือน อินพุตจะถูกจัดเรียงเพื่อให้เป็นเส้นทางแบบ: | | \ | ^ / \ / | …
15 code-golf 

5
รหัสใกล้กับความท้าทาย: การลงทะเบียน
นี่คือภาคต่อของความท้าทายนี้: รหัสใกล้กับความท้าทาย: ผลรวมของจำนวนเต็ม ความท้าทายในเกมนี้ยากขึ้นเล็กน้อยและสร้างชื่อที่ยอดเยี่ยม (ซึ่งเป็นเหตุผลที่ฉันเลือกมัน): คำนวณระยะทาง Levenshtein ระหว่างสองสาย เช่นเดียวกับการท้าทายครั้งสุดท้ายคะแนนของคุณในการท้าทายนี้คือระยะทาง Levenshteinระหว่างรหัสของคุณและข้อความที่กล่าวถึง ดังนั้นตอนนี้สำหรับรายละเอียด! โปรแกรมของคุณจะรับอินพุต 2 ตัวทั้งสองสตริงโดยไม่มีช่องว่างต่อท้ายหรือขึ้นบรรทัดใหม่และจะส่งออกระยะห่างระหว่าง Levenshtein ระยะทางของ Levenshtien ถูกกำหนดเป็นจำนวนของการเพิ่มการลบและการแทนที่ที่จำเป็นในการแปลงสตริงหนึ่งเป็นอีกสตริงหนึ่ง สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการคำนวณดูหน้า Wikipedia ที่ลิงก์ด้านบน เพื่อทดสอบว่าโปรแกรมของคุณใช้งานได้หรือไม่ให้ใช้เครื่องคิดเลขนี้ โปรแกรมของคุณต้องไม่แสดงผลอะไรนอกจากระยะทางของ Levenshtein ระหว่างสองสาย มันจะถูกตัดสิทธิ์หากมีสิ่งใดแสดงผล ตัวอย่าง I / O: Inputs: test test2 Output: 1 Inputs: 222 515 Output: 3 Inputs: Test test Output: 1 รหัสของคุณอาจไม่มีตัวเลือกหรือความคิดเห็น

5
ค้นหาเข็มนาฬิกาที่ใกล้ที่สุด
ท้าทาย กำหนดจำนวนวินาทีที่ผ่านมาเที่ยงคืนเอาท์พุทมุมที่เล็กที่สุดระหว่างสองมือบนหน้าปัดนาฬิกาโดยใช้น้อยที่สุดเท่าที่เป็นไปได้ คุณอาจคิดว่าจำนวนวินาทีน้อยกว่า 86400 เสมอมุมอาจแสดงเป็นองศาหรือเรเดียน โซลูชันอ้างอิงอยู่ที่: http://ideone.com/eVdgC0 กรณีทดสอบ (ผลลัพธ์เป็นองศา) 0 -> 0 60 -> 0.5 600 -> 5 3600 -> 0 5400 -> 45 6930 -> 84.75 50000 -> 63.333 Clarificarions นาฬิกามี 3 เข็ม: ชั่วโมงนาทีและวินาที ทุกมือเคลื่อนไหวอย่างต่อเนื่องดังนั้นชั่วโมงและนาทีจึงสามารถพบได้ระหว่างการเรียนจบที่หน้าปัดนาฬิกา

2
เติมลูกโป่งน้ำ
ในการท้าทายนี้คุณต้องแสดงศิลปะ ASCII ของบอลลูนน้ำที่กำหนดปริมาณน้ำที่เต็มไปด้วยบอลลูน: | __||__ | | / # #\ | | |######| | | |######| | | |######| | | |######| | | |######| | | \######/ | | | | | +----------+ วิธีการวาดบอลลูน ในการแสดงบอลลูนที่มีขนาดnให้ทำตามขั้นตอนต่อไปนี้ (หมายเหตุ: เมื่อใดก็ตามที่มีการใช้สัญลักษณ์การหาร ( /) มันจะแสดงถึงการหารจำนวนเต็มปัดเศษลง): วาดคอนเทนเนอร์ที่ประกอบด้วยแถบแนวตั้งสิบแถบ ( |) ที่ด้านซ้ายและขวาเครื่องหมายขีดคั่นสิบอัน ( -) ที่ด้านล่างและเครื่องหมายบวก ( +) …

2
แปล RoboCritters เป็น Brainf ***
RoboCritters ( นิรุกติศาสตร์ ) เป็นภาษาการเขียนโปรแกรมลึกลับใหม่ล่าสุด(ไม่ต้องค้นหามันฉันแค่คิดค้นมัน) มันแตกต่างจากBrainfuck (BF) ซึ่งซับซ้อนกว่าแผนทดแทนผู้ดำเนินการเล็กน้อย ทุกโปรแกรมใน RoboCritters เป็นตารางข้อความที่ประกอบด้วยอักขระเจ็ดตัวเท่านั้น. []/\|รวมถึงการขึ้นบรรทัดใหม่เพื่อกำหนดตาราง ตัวอย่างโปรแกรม RoboCritters: |\/||./|[]|| [..][][] | |/\|[..][..] [..] \/\/ ในการแปลโปรแกรม RoboCritters เป็น BF ให้ดูที่อักขระที่ไม่ใช่บรรทัดใหม่ในตารางตามลำดับการอ่านปกติ (จากซ้ายไปขวาจากบนลงล่างจากบนลงล่าง) เช่น |\/||./|[]||[..][][] ||/\|[..][..][..] \/\/เช่น หากส่วน 4 × 2 ของตารางขยายไปทางขวาและลงจากอักขระปัจจุบันตรงกับหนึ่งในแปดcritters หุ่นยนต์ที่ระบุไว้ด้านล่างผนวกคำสั่ง BF ที่สอดคล้องกัน( ><+-.,[]) เพื่อโปรแกรม BF (ตอนแรกว่างเปล่า) หากส่วนของกริด 4 × 2 ไม่ตรงกับส่วนใด ๆ ของหุ่นยนต์ critters …

3
Burrows, Wheeler และ Back
พื้นหลัง Burrows-Wheeler เปลี่ยน (BWT) คือการเปลี่ยนแปลงแบบพลิกกลับของตัวละครของสตริงว่าผลลัพธ์ในการทำงานที่มีขนาดใหญ่ของตัวละครที่คล้ายกันสำหรับบางประเภทของสตริงเช่นข้อความธรรมดา มันถูกใช้สำหรับตัวอย่างเช่นในขั้นตอนวิธีการบีบอัด bzip2 BWT ถูกกำหนดดังนี้: รับสตริงอินพุตเช่นcodegolfคำนวณการหมุนที่เป็นไปได้ทั้งหมดและเรียงลำดับตามคำศัพท์: codegolf degolfco egolfcod fcodegol golfcode lfcodego odegolfc olfcodeg BWT ของสตริงcodegolfคือสตริงที่ประกอบด้วยอักขระตัวสุดท้ายของแต่ละสตริงตามลำดับนั่นคือคอลัมน์สุดท้ายของบล็อกด้านบน สำหรับcodegolfผลตอบแทนfodleocgนี้ ด้วยตัวเองการแปลงนี้ไม่สามารถย้อนกลับได้เนื่องจากสตริงcodegolfและgolfcodeผลลัพธ์ในสตริงเดียวกัน อย่างไรก็ตามถ้าเรารู้ว่าสตริงนั้นลงท้ายด้วย a fมีเพียงหนึ่ง preimage ที่เป็นไปได้ งาน ใช้โปรแกรมหรือฟังก์ชั่นที่ไม่เกี่ยวข้องซึ่งอ่านสตริงเดี่ยวจาก STDIN หรือเป็นบรรทัดคำสั่งหรือฟังก์ชันอาร์กิวเมนต์แล้วพิมพ์หรือส่งคืน BWT หรืออินเวิร์สต์ของสตริงอินพุต หากสตริงอินพุตไม่มีช่องว่างการส่งของคุณควรผนวกช่องว่างเดียวกับอินพุตและคำนวณ BWT หากสตริงอินพุตมีช่องว่างอยู่แล้วควรคำนวณ preimage ของ BWT ที่มีช่องว่างต่อท้ายและตัดช่องว่างนั้น ตัวอย่าง INPUT: ProgrammingPuzzles&CodeGolf OUTPUT: fs&e grodllnomzomaiCrGgPePzu INPUT: fs&e grodllnomzomaiCrGgPePzu OUTPUT: …

13
เวลาทศนิยมของการแปลงวัน
บทนำ เวลากำลังสับสน หกสิบวินาทีถึงหนึ่งนาที, หกสิบนาทีถึงหนึ่งชั่วโมง, ยี่สิบสี่ชั่วโมงต่อวัน (และไม่ต้องพูดถึงที่น่ารำคาญ am / pm!) ทุกวันนี้ไม่มีที่ว่างเหลืออยู่สำหรับความงี่เง่าดังนั้นเราจึงตัดสินใจเลือกทางเลือกที่เหมาะสมเพียงอย่างเดียวคือวันทศนิยม! กล่าวคือในแต่ละวันจะถือว่า 1 หน่วยทั้งหมดและสิ่งที่สั้นกว่านั้นเขียนเป็นเศษส่วนทศนิยมของวันนั้น ตัวอย่างเช่น: "12:00:00" จะถูกเขียนเป็น "0.5" และ "01:23:45" อาจถูกเขียนเป็น "0.058159" เนื่องจากต้องใช้เวลาในการทำความคุ้นเคยกับระบบใหม่คุณจึงได้รับมอบหมายให้เขียนโปรแกรมที่สามารถแปลงระหว่างทั้งสองได้ ท้าทาย เขียนโปรแกรมในภาษาที่คุณเลือกซึ่งกำหนดเวลาที่ทันสมัยในรูปแบบ ISO-8601 ของ "hh: mm: ss" จะส่งคืนหน่วยเศษทศนิยมที่เทียบเท่า ในทำนองเดียวกันเมื่อได้รับเศษทศนิยมโปรแกรมควรส่งคืนเวลาในรูปแบบทันสมัยที่ระบุไว้ในตอนแรก คุณสามารถกำหนดสมมติฐานต่อไปนี้: อินพุตและเอาต์พุตเวลาที่ทันสมัยสามารถอยู่ในช่วง "00:00:00" ถึง "24:00:00" อินพุตและเอาต์พุตเวลาทศนิยมสามารถอยู่ในช่วงตั้งแต่ "0" ถึง "1" และควรสามารถยอมรับ / ส่งออกได้อย่างน้อย 5 ตำแหน่งทศนิยม (เช่น "0.12345") ความแม่นยำมากขึ้นเป็นที่ยอมรับ โปรแกรมควรทราบทิศทางการแปลงที่จะดำเนินการตามอินพุต คุณไม่สามารถใช้ฟังก์ชัน …

9
Brainf ** k ถึง Unary และ Back
ภาษาที่มีประโยชน์มากในแหล่งที่มีข้อ จำกัด และความท้าทายอื่น ๆ คือUnaryซึ่งเป็นอนุพันธ์ของสมองที่โปรแกรมจะเขียนด้วยตัวละครเพียงตัวเดียว งานของคุณคือการเขียนโปรแกรมเพื่อแปลงโปรแกรมจาก brainfuck เป็นเอกและโปรแกรมที่จะทำตรงข้ามทั้งสองโปรแกรมในภาษาเดียวกัน คะแนนของคุณจะเป็นผลรวมของความยาวของโปรแกรมทั้งสอง คุณแปลงจาก brainfuck เป็น unary ได้อย่างไร? ก่อนอื่นแปลงโค้ด brainfuck ให้คุณเป็นไบนารี่ตามตารางนี้: ตอนนี้เชื่อมต่อรหัสเป็นเลขฐานสองยักษ์หนึ่งตัวตามลำดับของรหัส เติม a 1เข้ากับสตริงเพื่อให้แน่ใจว่าเลขฐานสองที่ไม่ซ้ำกัน แปลงจากเลขฐานสองเป็นตัวเลขโดยใช้ตัวอักษรใดก็ได้ Ex: +.จะเป็น000000000000000000000000000000000000000000000000000000000000000000000000000000000000 (84 ศูนย์) Brainfuck -> ข้อมูลจำเพาะของนารี เนื่องจากโปรแกรมที่ได้จะมีขนาดใหญ่มากพิมพ์ไม่ได้เป็นโปรแกรมจริง แต่เป็นเพียงความยาวของโปรแกรมผลลัพธ์ ใช้โปรแกรม brainfuck เป็นสตริงผ่าน stdin, ฟังก์ชัน arg ฯลฯ และส่งออกความยาว โปรแกรมจะใช้ได้ตลอดเวลาและมีเพียง 8 ตัวอักษรในนั้น ยูนารี -> ข้อมูลจำเพาะของ Brainfuck คุณจะต้องใช้การย้อนกลับของอัลกอริทึมข้างต้น อีกครั้งเนื่องจากมีขนาดใหญ่มากคำถามอินพุตจะเป็นตัวเลขที่อธิบายความยาวของรหัสยูนารี กฎ I …

8
อินทิกรัสามเหลี่ยมและอินทิกรัลอินทิกรัล
พิจารณาABCสามเหลี่ยมที่แต่ละด้านมีความยาวเต็ม ( สามเหลี่ยมหนึ่ง ) กำหนดค่ามัธยฐานของABCให้เป็นส่วนของเส้นตรงจากจุดสุดยอดไปจนถึงจุดกึ่งกลางของฝั่งตรงข้าม ในภาพด้านล่างส่วนของเส้นสีแดงแสดงถึงค่ามัธยฐาน โปรดทราบว่าสามเหลี่ยมใด ๆ ที่ระบุมีค่ามัธยฐานสามค่า ให้nเป็นจำนวนเต็มบวก มีอินทิกรัลไม่รูปสามเหลี่ยมจำนวนกี่ตัวที่มีความยาวด้านละน้อยกว่าหรือเท่ากับnมีค่ามัธยฐานอินทิกรัลอย่างน้อยหนึ่งค่า ท้าทาย จงเขียนโปรแกรมเพื่อคำนวณจำนวนสามเหลี่ยมหนึ่งที่มีค่ามัธยฐานหนึ่งอย่างน้อยหนึ่งสำหรับกำหนดความยาวสูงสุดด้านn คำสั่งของความยาวด้านนั้นไม่สำคัญเช่น <6,6,5> แสดงถึงสามเหลี่ยมเดียวกันกับ <5,6,6> และควรนับเพียงครั้งเดียว ยกเว้นรูปสามเหลี่ยมที่เสื่อมสภาพเช่น <1,2,3> เกณฑ์การให้คะแนน n ที่ใหญ่ที่สุดซึ่งโปรแกรมของคุณสามารถสร้างจำนวนสามเหลี่ยมใน60 วินาทีในเครื่องของฉันคือคะแนนของคุณ โปรแกรมที่มีคะแนนสูงสุดจะเป็นผู้ชนะ เครื่องของฉันคือ Sony Vaio SVF14A16CLB, Intel Core i5, 8GB RAM ตัวอย่าง ให้T ( N ) เป็นโปรแกรมที่มีการป้อนข้อมูลN T(1) = 0 T(6) = 1 T(20) = 27 T(22) …

2
แก้ไขเครื่องมือจัดฟัน ฯลฯ
ภารกิจของคุณคุณควรเลือกที่จะยอมรับมันคือการเพิ่มขั้นต่ำจำนวนวงเล็บวงเล็บและวงเล็บที่จะทำให้สตริงที่กำหนด (ที่มีวงเล็บเท่านั้นวงเล็บและวงเล็บ) มีการจับคู่รั้งที่ถูกต้อง ความสัมพันธ์ของสัญลักษณ์ที่เพิ่มเข้ามาจะต้องถูกทำลายโดยมีระยะห่างสูงสุดระหว่างเครื่องหมายปีกกาคู่ คุณต้องส่งคืนคำตอบที่ถูกต้องเพียงข้อเดียวที่ตรงกับกฎทั้งสองนี้ ความสัมพันธ์เพิ่มเติมหากมีอยู่อาจถูกทำลายในแบบที่คุณเห็นว่าเหมาะสม ตัวอย่าง: input output // Empty String is a legal input [ [] // Boring example [()] [()] // Do nothing if there's nothing to be done ({{ ({{}}) // NOT (){}{} (0 + 0 + 0). Maximum distance is 4 + 2 + 0, …

7
ฉันควรใส่ร้านอาหารไว้ที่ไหน
คุณเป็นเจ้าของร้านอาหาร คุณกำลังเปิดในพื้นที่ใหม่ใน Cartesia ที่มีถนนสายหลักเพียงเส้นเดียวเท่านั้นที่รู้จักกันในชื่อแกน y คุณต้องการวางร้านอาหารของคุณเพื่อลดระยะทางโดยรวมจากร้านอาหารและบ้านแต่ละหลังในพื้นที่นั้น อินพุต : อินพุตจะเป็น n, the number of houses house1 house2 house3 ... houseN x yซึ่งแต่ละบ้านจะประสานงานในรูปแบบ แต่ละหน่วยแสดงถึงหนึ่งกิโลเมตร คุณสามารถรับอินพุตเป็นสตริงหรือจัดเตรียมฟังก์ชันที่รับอินพุตในรูปแบบใดก็ได้ที่คุณเลือกเป็นอาร์กิวเมนต์ เอาท์พุท : พิกัด y ของร้านอาหารของคุณ (จำไว้ว่ามันจะอยู่บนแกน y) จริงๆแล้วมันจะอยู่ข้างถนน แต่ความแตกต่างนั้นเล็กน้อย โดยพื้นฐานแล้วถ้าบ้านหลังที่ n อยู่h_nและDเป็นฟังก์ชั่นระยะทางคุณจะต้องหาสิ่งkที่D(h_0, (0, k)) + D(h_1, (0, k)) + D(h_2, (0, k)) + ... + D(h_n, (0, …

6
พิมพ์สตริงโดยไม่มีการแชร์อักขระ
แก้ไข: อนุญาตให้นำมาใช้ซ้ำช่องว่าง งานของคุณคือการเขียนโปรแกรมn (หรือฟังก์ชั่นหรือส่วนของฟังก์ชั่นโดยไม่ต้องใช้พารามิเตอร์หรือชื่อฟังก์ชั่น) ในภาษาเดียวกัน โปรแกรมk th ควรส่งออกหมายเลข(cardinal) kในภาษาอังกฤษมาตรฐานเป็นตัวพิมพ์เล็ก (พร้อมบรรทัดใหม่ที่เป็นทางเลือก) ดังนั้นโปรแกรมแรกควรเอาท์พุทoneที่สองควรเอาท์พุทtwoฯลฯ twenty-oneสำหรับจำนวนที่มีสองส่วนพวกเขาควรจะแยกจากกันโดยยัติภังค์เหมือน แต่ไม่มีโปรแกรมสองโปรแกรมในการส่งของคุณที่สามารถแชร์อักขระที่ไม่ใช่ whitespace หรืออักขระ whitespace ที่ทำงานที่มีประโยชน์ ตัวอย่างเช่นถ้าโปรแกรมแรกของคุณเป็นเพียง"one"ไม่มีแล้ว" o nและeสามารถนำมาใช้อีกครั้งในโปรแกรมอื่น ๆ ของคุณ คุณสามารถใช้อักขระช่องว่าง (ช่องว่างการขึ้นบรรทัดใหม่และแท็บ) ในสองโปรแกรมขึ้นไปหากเป็นเพียงตัวคั่นหรือการเยื้องและไม่ต้องทำอะไรด้วยตนเอง ดังนั้นคุณไม่สามารถใช้ซ้ำในภาษาของWhitespace ได้และคุณไม่สามารถใช้พวกมันเป็นสตริงในโปรแกรมมากกว่าหนึ่งโปรแกรม คุณสามารถใช้อักขระ ASCII ที่พิมพ์ได้แท็บและบรรทัดใหม่ (รวมถึง CR และ LF) ทุกโปรแกรมต้องมีอย่างน้อย 1 ตัวอักษร คะแนนของคุณคือผลรวมของ 1 / ขนาดโปรแกรม ^ 1.5 คะแนนสูงสุดชนะ คุณสามารถใช้ Stack Snippet ( หรือรหัส CJam …

4
สั่งซื้อ 40 แท่ง
เรามีความกว้าง 40 แท่งที่เหมือนกัน แต่มีความสูงต่างกัน มีวิธีใดบ้างที่สามารถจัดวางไว้ติดกันเพื่อที่ว่าเมื่อเรามองจากด้านขวาเราเห็น 10 แท่งและเมื่อมองจากซ้ายเราจะเห็นว่ามี 10 แท่งแน่นอน ตัวอย่างเช่นการสั่งซื้อคือ: แท่งสีดำซ่อนอยู่แท่งสีแดงเป็นแท่งที่คุณสามารถมองเห็นได้จากด้านซ้ายแท่งสีฟ้าเป็นแท่งที่คุณสามารถมองเห็นได้จากด้านขวาและสีม่วง (เช่นแท่งที่ยาวที่สุด) คือแท่งที่สามารถมองเห็นได้ จากทั้งสองด้าน ในกรณีทดสอบ: ถ้าเรามีจำนวนการเรียง 3 แท่งเพื่อดู 2 จากซ้ายและ 2 จากขวาคือ 2 ถ้าเรามีจำนวนการเรียง 5 แท่งเพื่อดู 3 จากซ้ายและ 3 จากขวาคือ 6 หากเรามีจำนวนการสั่งไม้ 10 ครั้งเพื่อดู 4 จากซ้ายและ 4 จากขวาคือ 90720

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.