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

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

4
เรือใหม่ของเธเซอุส
เรือของเซอุสเป็นคำถามเดิมที่จะไปสิ่งที่ชอบ: หากเรือได้เปลี่ยนชิ้นส่วนดั้งเดิมทั้งหมดแล้วมันยังคงเป็นเรือลำเดิมหรือไม่? สำหรับกอล์ฟนี้เราจะค่อยๆเปลี่ยน "ชิ้นส่วน" เป็น "เรือ" และดูว่าต้องใช้เวลานานเท่าใดจึงจะได้เรือใหม่ทั้งหมด งาน เรือประกอบด้วยอย่างน้อยสองส่วน ชิ้นส่วนจะได้รับเป็นอาร์เรย์ของจำนวนเต็มบวก (ไม่เป็นศูนย์) แสดงถึงสภาพของส่วนนั้น ในแต่ละรอบสุ่มเลือกหนึ่งส่วนจากรายการในรูปแบบเหมือนกัน เงื่อนไขของส่วนนั้นจะลดลงหนึ่ง เมื่อสภาพของชิ้นส่วนเป็นศูนย์มันจะถูกแทนที่ด้วยชิ้นส่วนใหม่ ชิ้นส่วนใหม่เริ่มต้นด้วยค่าเงื่อนไขเดียวกับที่ทำกับต้นฉบับ ในรอบแรกที่มีการเปลี่ยนชิ้นส่วนทั้งหมด (อย่างน้อย) หนึ่งครั้งให้หยุดและส่งออกจำนวนรอบที่ใช้ ตัวอย่างเช่น (สมมติว่าฉันเลือกชิ้นส่วนแบบสุ่มที่นี่): 2 2 3 <- starting part conditions (input) 2 1 3 <- second part reduced 2 1 2 ... 2 1 1 2 2 1 <- second part reduced …

4
คำนวณความน่าจะเป็นอย่างแน่นอน
งานนี้เกี่ยวกับการเขียนโค้ดเพื่อคำนวณความน่าจะเป็น ผลลัพธ์ควรเป็นความน่าจะเป็นที่แม่นยำที่เขียนเป็นเศษส่วนในรูปแบบที่ลดลงมากที่สุด นั่นคือไม่ควรเอาท์พุท4/8แต่จะดี1/2กว่า สำหรับจำนวนเต็มบวกnพิจารณาสตริงสุ่มอย่างสม่ำเสมอของ 1s และ -1s ของความยาวnและเรียกมันว่า A ตอนนี้เชื่อมต่อกับAค่าแรก นั่นคือA[1] = A[n+1]ถ้าการจัดทำดัชนีจาก 1. ในขณะนี้มีความยาวA n+1ทีนี้ลองพิจารณาความยาวสตริงที่สองแบบสุ่มnซึ่งnค่าแรกคือ -1, 0 หรือ 1 ที่มีความน่าจะเป็น 1/4, 1, 2, 1/4 แต่ละอันและเรียกมันว่า B n=3ตัวอย่างเช่นพิจารณา ค่าที่เป็นไปได้AและBอาจจะเป็นและA = [-1,1,1,-1] B=[0,1,-1]ในกรณีนี้ผลิตภัณฑ์ทั้งสองด้านมีและ02 ตอนนี้พิจารณาผลิตภัณฑ์ภายในA[1,...,n]และBและสินค้าภายในของและA[2,...,n+1]B รหัสของคุณจะต้องแสดงผลความน่าจะเป็นที่ผลิตภัณฑ์ทั้งสองนั้นมีค่าเป็นศูนย์ สำหรับความน่าจะเห็นผลชัดเจนn=11/2 ฉันไม่สนใจว่าnจะมีการระบุไว้อย่างไรในรหัส แต่ควรจะง่ายและชัดเจนในการเปลี่ยน ภาษาและห้องสมุด คุณสามารถใช้ภาษาและห้องสมุดที่คุณต้องการ ฉันต้องการเรียกใช้รหัสของคุณดังนั้นโปรดระบุคำอธิบายแบบเต็มสำหรับวิธีเรียกใช้ / รวบรวมรหัสของคุณใน linux หากเป็นไปได้

7
ค้นหาสตริงดนตรีที่ยาวที่สุด
สตริงดนตรีคือสตริงใด ๆ ที่สามารถเล่นบนแป้นพิมพ์เปียโน สำหรับพวกเราที่ไม่ได้ถูกบังคับให้เรียนเปียโนในฐานะเด็กนี่คือลักษณะของแป้นพิมพ์ ดังนั้นสตริงfeed a dead cabbageจึงเป็นสตริงดนตรีเพราะตัวอักษรทุกตัวตรงกับข้อความเหล่านี้ ความท้าทายของคุณคือการเขียนโปรแกรมที่ใช้สตริงเป็นอินพุตจาก STDIN และค้นหาสตริงดนตรีที่ยาวที่สุด จากนั้นโปรแกรมของคุณจะต้องพิมพ์สตริงย่อยและความยาว นี่คือตัวอย่างอินพุต / เอาท์พุตบางส่วน อินพุต: "ฟีดฉัน! ฉันหิว!" ผลลัพธ์: ฟีด 4 อินพุต: ไม่ไม่ไม่ไม่มีเพลง! Ouput: 0 การป้อนข้อมูล: "A **bad** !!!fAd82342" ผลลัพธ์: abadfad 7 อินพุต: "Good golfing!" ผลลัพธ์: dg 2 กฎระเบียบ เอาต์พุตของคุณอาจเป็นตัวพิมพ์ใหญ่หรือตัวพิมพ์เล็ก แต่ต้องไม่มีเครื่องหมายวรรคตอนหรือช่องว่าง จะมีการใช้อักษรตัวใหญ่และเครื่องหมายวรรคตอนในสตริงป้อนข้อมูล แต่สิ่งนี้จะไม่ส่งผลกระทบต่อสตริงย่อยที่ถูกพิจารณาว่าเป็น "ดนตรี" หรือไม่ จะต้องมีช่องว่างระหว่างสายอักขระดนตรีและหมายเลข

2
ตารางศิลปะ ASCII เลียนแบบแฟร็กทัล
เขียนโปรแกรมที่เล็กที่สุดที่คุณสามารถสร้างเลียนแบบแฟร็กทัลได้ คุณอาจใช้วิธีการใด ๆ ที่คุณรู้สึกว่าสร้างผลลัพธ์เช่นเดียวกับกฎด้านล่าง คุณไม่จำเป็นต้องใช้ความคิดใด ๆ จากวิธีการที่แนะนำ! โปรแกรมของคุณจะรับสองอินพุตเป็นคนแรกที่กำหนดรูปแบบในรูปแบบที่074ทำจากตัวเลขสามหลักจาก 0 ถึง 7 อินพุตที่สองจะกำหนดขนาด3จะเป็น 8x8 4จะเป็น 16x16 และอื่น ๆ (2 ^ n) โปรแกรมของคุณจะต้องแสดงผลลัพธ์ที่ถูกต้องสำหรับทุกขนาดตั้งแต่ 0 (1x1) ถึงอย่างน้อย 5 (32x32) ถ้ามันสร้างผลลัพธ์ใด ๆ สำหรับตัวเลขที่สูงกว่ามันจะต้องถูกต้องนั่นคือมันจะต้องสร้างผลลัพธ์ที่ถูกต้องจนถึงขนาดที่กำหนด แต่จะไม่สร้างผลลัพธ์ที่เกินขนาดนั้นถ้ามันผิด คุณอาจสันนิษฐานว่าขนาดสูงสุด 15 (32768x32768) เนื่องจากเป็นขนาดที่บ้าสำหรับศิลปะ ASCII (1GB)! รูปแบบ 8x8 จะมีลักษณะดังนี้ (กฎ160) ซ้ายสุดหลักจะเป็นบล็อกA, กลางหลัก (ไม่คิดหยาบคายโปรด!) สำหรับบล็อกและหลักขวาสุดสำหรับบล็อกB Cในการสร้างเศษส่วนให้ลดขนาดลงครึ่งหนึ่งในทั้งสองมิติและใช้กฎการหมุน / การมิร์เรอร์สำหรับบล็อก หากต้องการลดขนาดรูปแบบให้แบ่งเป็นเท่า ๆ กันในพื้นที่ …

1
จำนวนเอาต์พุตที่ไม่ซ้ำกันโดยการแทนที่ตัวแปร
รับชุดของสูตรดังนี้: bacb bcab cbba abbc ให้อัลกอริทึมที่ค้นหาจำนวนผลลัพธ์ที่ไม่ซ้ำกันซึ่งคุณสามารถรับได้เมื่อแต่ละตัวแปรถูกแทนที่ด้วย "0" หรือ "1" ในทุกสูตร มี(k!)^2สูตรแต่ละสูตรมี2k-1ตัวแปรและk^2เงื่อนไข แสดงความ asymptotics kคุณในแง่ของ อัลกอริทึมที่เร็วที่สุดชนะ ในกรณีที่วิธีการแก้ปัญหาที่มีการใช้หน่วยความจำ asymptotic ที่ต่ำกว่าชนะ หากยังคงเสมอกันโพสต์แรกจะชนะ สำหรับตัวอย่างด้านบนผลลัพธ์ต่อไปนี้สามารถรับได้โดยการแทนที่ตัวแปร: 1110, 0110, 1001, 0100, 1000, 0000, 0010, 1101, 1111, 0001, 1011, 0111 ดังนั้นคำตอบที่ถูกต้องคือ 12 หมู่คนอื่น ๆ1010ไม่สามารถทำได้โดยใช้สูตรข้างต้น ผมได้ทำอีกสามกรณีการทดสอบกับการแก้ปัญหาที่เกี่ยวข้องของ230 , 12076และ1446672

3
IMP: ตัวแยกวิเคราะห์การคูณโดยนัย
แจ็คชอบภาษาการเขียนโปรแกรม C แต่ไม่ชอบเขียนนิพจน์เช่นV=a*b*h; การคูณค่า เขาอยากจะเขียนV=abh;แทนทำไมผู้แปลจึงควรคร่ำครวญถึงabhสัญลักษณ์ที่ไม่ได้นิยามเนื่องจากint a, b, h;มีการนิยามดังนั้นเราจึงสามารถอนุมานการคูณได้ ช่วยเขาใช้เครื่องมือแยกวิเคราะห์ที่ถอดรหัสคำศัพท์การคูณเดียวให้ทราบชุดของตัวแปรที่กำหนดในขอบเขตปัจจุบัน เพื่อความง่ายไม่นับรวมจำนวน (ตาม2*a*b) เข้าด้วยกันจะปรากฏเฉพาะตัวแปรเท่านั้น อินพุตเป็นคำศัพท์การคูณ T , เติมเต็ม regexp: [a-zA-Z_][a-zA-Z_0-9]* และตัวแปรชุด Z การแยก P ของคำว่า T บนชุดตัวแปร Z คือสตริงที่ตอบสนองต่อไปนี้: หลังจากลบสิ่งที่เกิดขึ้นทั้งหมด*จาก P เราได้รับ T อาจเป็นชื่อตัวแปรจาก Z หรือประกอบด้วยชื่อตัวแปรที่เหมาะสมจาก Z แยกด้วย*อักขระเดี่ยว วิธีแก้ปัญหาควรพิมพ์การแยกวิเคราะห์คำทั้งหมด ตัวอย่าง: Vars a, c, ab, bc Term abc Solution ab*c, a*bc Vars ab, …

1
ดัชนีสตริงย่อยสั้นที่สุด
ฉันเป็นคนขี้เกียจ แต่ก็เป็นคนที่มีประสิทธิภาพซึ่งหลายคนคงเป็นเช่นกัน ดังนั้นเมื่อใดก็ตามที่ฉันทำสิ่งที่ฉันต้องการจะทำด้วยความพยายามน้อยที่สุด นี่คือเหตุผลที่ฉันขอให้คุณแก้ปัญหานี้ให้ฉัน สิ่งที่ฉันมีที่นี่เป็นเอกสารแปลก ๆ ในทุกบรรทัดของเอกสารนี้เป็นคำเดียวหรือวลีสั้น ๆ เอกสารไม่ได้เรียงลำดับ แต่ก็โอเคฉันรู้ว่าทุกอย่างอยู่ที่ไหน ฉันสามารถใช้ความช่วยเหลือในการค้นหาสิ่งต่าง ๆ ได้เร็วขึ้นและเพื่อที่ฉันต้องการรายการที่สอง นี่คือที่ที่คุณเข้ามาสำหรับทุกบรรทัดของข้อความในเอกสารนี้ฉันต้องการตัวระบุบางอย่าง บางสิ่งที่ฉันสามารถทำได้CTRL+ Fแต่มันไม่สามารถเกินความจำเป็นอย่างยิ่งที่จะได้ผลลัพธ์นั้น อินพุตตัวอย่าง: (blank) an apple spiderman 3 7pm pick up laundry tequila fake mustache dishes on wednesday banana biscuits (blank) ตัวอย่างผลลัพธ์: ap,3,7,q,f,w,ba,bi ฉันจะทำซ้ำตัวเองที่นี่เพื่อให้แน่ใจว่าเราอยู่ในหน้าเดียวกัน: อินพุตเป็นไฟล์ข้อความที่ไม่ฟอร์แมตที่มีรายการซึ่งคั่นด้วยตัวแบ่งบรรทัด ฉันมีที่นี่ในรูปแบบ. txt เรียกว่า "STUFF.TXT" บรรทัดแรกและบรรทัดสุดท้ายของเอกสารว่างเปล่า บรรทัดอื่นทุกบรรทัดมีรายการความยาว> 0 ไฟล์มีอักขระตัวอักษรผสมตัวเลขเท่านั้น (ตัวพิมพ์เล็กทั้งหมด) เว้นวรรคและตัวแบ่งบรรทัด ผลลัพธ์ที่ต้องการคือรายการของตัวระบุตามลำดับเช่นเดียวกับรายการเดิมของฉัน …

2
กลับคำทุกคำในบรรทัดเป็นกลุ่ม
งานของคุณคือการสร้างสคริปต์เป็นกลุ่มหรือจัดลำดับการกดแป้นที่จะทำงานในบรรทัดเดียวของข้อความที่มีมากถึง 140 ตัวอักษร ASCII ที่พิมพ์ได้ (ทุกที่ในไฟล์ที่มีเคอร์เซอร์เริ่มที่ใดก็ได้ในบรรทัด) และย้อนกลับทุกพื้นที่ สตริงที่แยกกันในประโยคในขณะที่รักษาสตริงในลำดับเดียวกัน ตัวอย่างเช่นอินพุต: roF emos nosaer m'I gnisu a retcarahc-041 timil no siht noitseuq neve hguoht ti t'nseod evlovni .rettiwT RACECAR ควรกลับมา: For some reason I'm using a 140-character limit on this question even though it doesn't involve Twitter. RACECAR สคริปต์ที่มีตัวละครน้อยที่สุดหรือลำดับของการกดแป้นที่น้อยที่สุดเพื่อให้ได้ผลลัพธ์นี้คือผู้ชนะ
9 code-golf  vim 

2
เขียนตัวเข้ารหัส GIF
ใช่ GIF แบบเก่าที่ดี ชอบความเก่งกาจ, เกลียดการจดสิทธิบัตรและล้าสมัยบางส่วนเนื่องจากข้อ จำกัด ของมัน (และสิทธิบัตร), GIF ประกอบด้วยที่แกนกลาง, จานสีและภาพดัชนีที่ถูกบีบอัดโดยใช้อัลกอริทึม LZW งานของคุณคือการเขียนโปรแกรมที่อ่านภาพในรูปแบบASCII PPM (หมายเลขมายากล "P3") จากอินพุตมาตรฐานและเขียนภาพเดียวกัน (พิกเซลเหมือนกันโดยพิกเซล) ในรูปแบบ GIF ไปยังเอาต์พุตมาตรฐาน เอาต์พุตสามารถอยู่ในรูปแบบไบนารีหรือข้อความ ASCII ที่มีแต่ละไบต์แทนด้วยตัวเลขระหว่าง 0 ถึง 255 (รวม) โดยคั่นด้วยช่องว่าง รับประกันภาพอินพุตไม่ให้มีสีต่างกันมากกว่า 256 สี เกณฑ์การให้คะแนน: โปรแกรมของคุณจะถูกทดสอบใน 3 ภาพตัวอย่างและคะแนนของคุณจะถูกคำนวณเป็น: ขนาดโปรแกรม + ผลรวม (ขนาดผลงาน - ขนาดอ้างอิงสำหรับภาพตัวอย่างแต่ละภาพ) คะแนนต่ำสุดชนะ ที่ต้องการ: โปรแกรมของคุณจะต้องทำงานกับรูปภาพประเภทต่างๆขนาดใกล้เคียงกันและไม่ จำกัด เฉพาะภาพตัวอย่าง ตัวอย่างเช่นคุณสามารถ จำกัด ขนาดให้เป็นทวีคูณของ …

2
นับการจัดการรั้วสูงสุด
พื้นหลัง ฉันต้องการสร้างรั้ว ด้วยเหตุนี้ฉันจึงรวบรวมเสาจำนวนมากและติดมันกับพื้น ฉันได้รวบรวมกระดานมากมายที่ฉันจะตอกตะปูกับเสาเพื่อทำรั้วจริง ฉันมักจะถูกพาตัวไปสร้างสิ่งต่าง ๆ และส่วนใหญ่ฉันจะเอาไม้กระดานไปไว้ที่เสาจนกว่าจะไม่มีที่ว่างสำหรับใส่มัน ฉันต้องการให้คุณแจกแจงรั้วที่เป็นไปได้ที่ฉันสามารถท้ายด้วย อินพุต อินพุตของคุณคือรายการของพิกัดจำนวนเต็มสองมิติที่แสดงถึงตำแหน่งของเสาในรูปแบบที่สะดวก คุณสามารถสันนิษฐานได้ว่ามันไม่มีสิ่งที่ซ้ำกัน แต่คุณไม่สามารถคิดอะไรเกี่ยวกับคำสั่งซื้อ บอร์ดถูกแสดงโดยเส้นตรงระหว่างเสาและเพื่อความง่ายเราพิจารณาเฉพาะบอร์ดแนวนอนและแนวตั้ง สองขั้วสามารถเข้าร่วมโดยคณะกรรมการหากไม่มีเสาอื่น ๆ หรือบอร์ดระหว่างพวกเขาหมายความว่าบอร์ดไม่สามารถข้ามกันและกัน การจัดเรียงของเสาและแผงเป็นสูงสุดถ้าไม่มีบอร์ดใหม่ที่สามารถเพิ่มลงไป (เท่ากันมีทั้งเสาหรือคณะกรรมการใด ๆ ระหว่างสองขั้วในแนวนอนหรือแนวตั้งชิดก) เอาท์พุต ผลลัพธ์ของคุณคือจำนวนข้อตกลงสูงสุดที่สามารถสร้างขึ้นได้โดยใช้เสา ตัวอย่าง พิจารณารายการอินพุต [(3,0),(1,1),(0,2),(-1,1),(-2,0),(-1,-1),(0,-2),(1,-1)] มองจากด้านบนการจัดเรียงที่สอดคล้องกันของเสามีลักษณะดังนี้: o o o o o o o o มีการจัดเรียงสูงสุดสามอย่างที่สามารถสร้างได้โดยใช้เสาเหล่านี้: o o o o-o o|o o-o o----o o||| o o| | o o-o o|o o-o …

1
Python 3 พยายามเล่นกอล์ฟที่ได้รับมอบหมาย
หมายเหตุ:นี่ไม่ใช่ความท้าทายในการเล่นกอล์ฟมากนัก มันมากขึ้นดังนั้นขอคำแนะนำการเล่นกอล์ฟ เมื่อเร็ว ๆ นี้ฉันมีการกำหนด Python สำหรับคลาสการพัฒนาเว็บของฉันเพื่อตรวจสอบว่าเราสามารถใช้รหัสได้หรือไม่ เนื่องจากฉันรู้สึกสบายใจกับ Python ฉันจึงตัดสินใจลองเล่นกอล์ฟและฉันก็สงสัยว่าผู้คนจะชี้ให้เห็นสิ่งที่ฉันพลาดไปได้ไหม ฉันรู้แล้วว่ามีช่องว่างเพิ่มเติมในบางสถานที่ แต่ฉันสนใจสิ่งต่าง ๆ ในเชิงแนวคิดมากกว่าเช่นใช้while r:เมื่อ r เป็นตัวแปรแล้วรอให้ "หมด"! งานที่ได้รับมอบหมาย import random from collections import Counter s=l='' c=['yellow','blue','white','green','Black', 'purple', 'silver', 'cyan', 'magenta', 'red'] n=[10,15,1,10,6,15,10,25,1,12,5,10,4,6,5,12,0,10,1,1] o=i=0 for y in c:l+=y[0]*(random.randint(n[o],n[o+1]));o+=2 l=list(l) print("Welcome to the CIMS Gumball Machine Simulator\nYou are starting with the …

2
ข้อสรุปกราฟสี
ในบางกรณีบ่อยครั้งในวิชาฟิสิกส์คุณต้องรวมกราฟ ความท้าทายของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้กราฟหลาย ๆ รูปเป็นภาพคำนวณผลรวมที่เป็นไปได้ทั้งหมดและแสดงผลลัพธ์ กราฟ กราฟเป็นภาพที่มีrgb(255, 255, 255)พื้นหลังสีขาว ( ) พร้อมพิกเซลที่ไม่ใช่สีขาวในแต่ละคอลัมน์ ตัวอย่าง: ค่าของสคริปต์จะแสดงเป็นตำแหน่ง Y ของพิกเซลสี ค่าที่พิกัด X หนึ่งเท่ากับตำแหน่ง Y ของพิกเซลสีบนสุดในคอลัมน์นั้นโดยพิกัดเริ่มต้นที่ 0 ที่ด้านล่างซ้าย อาจมีหรือไม่มีพิกเซลสีเพิ่มเติมด้านล่างพิกเซลเหล่านั้นด้วยเหตุผลที่สวยงาม งาน งานของคุณคือการเขียนโปรแกรมหรือฟังก์ชั่นที่ใช้กราฟหลาย ๆ รูปเป็นภาพคำนวณ2^n - 1ผลรวมทั้งหมดที่เป็นไปได้และผลลัพธ์ผลลัพธ์ ผลรวมของกราฟคือกราฟที่ค่าของแต่ละคอลัมน์มีค่าเท่ากับผลรวมของค่าของคอลัมน์ที่เกี่ยวข้องในแต่ละกราฟอินพุต กราฟจะมีหลายสี ภาพผลลัพธ์ต้องมีผลรวมของกราฟที่เป็นไปได้ทั้งหมดเช่นเดียวกับกราฟอื่นรวมถึงกราฟต้นฉบับ แต่ไม่รวมผลรวมเป็นศูนย์ สีของผลรวมแต่ละครั้งจะถูกกำหนดโดยค่าเฉลี่ยของสีของกราฟที่รวมอยู่เช่นกราฟของสีrgb(255, 0, 255)และrgb(0, 255, 255)จะสร้างกราฟของrgb(128, 128, 255)(อาจถูกปัดเศษลง) ภาพที่ได้ควรมีความสูงตามความเหมาะสมเพื่อให้พอดีกับกราฟทั้งหมด ซึ่งหมายความว่าคุณอาจต้องส่งภาพที่มีขนาดใหญ่กว่าอินพุตใด ๆ ลำดับที่กราฟผลลัพธ์ถูกดึงไปยังรูปภาพผลลัพธ์ไม่สำคัญเช่นหากกราฟผลลัพธ์ซ้อนกันคุณอาจเลือกกราฟที่อยู่ด้านบน แต่จะต้องเป็นหนึ่งในกราฟไม่ใช่สีผสมกัน คุณอาจคิดว่าภาพอินพุตมีความกว้างเท่ากันคอลัมน์ทั้งหมดของภาพมีพิกเซลที่ไม่ใช่สีขาวอย่างน้อยหนึ่งพิกเซลและความสูงของภาพ (รวมถึงเอาต์พุต) ต่ำกว่า 4096 พิกเซล …

2
Downhill Maze Solver
เขาวงกตลงเขาให้เป็นชุดของแถวของช่องว่างที่คั่นหลักจาก 0 ถึง 9 รวมทั้งหนึ่ง "S" และ "X" หนึ่งที่ S หมายถึงการเริ่มต้นและ X หมายถึงการเสร็จสิ้น ในเขาวงกตที่ตกต่ำคุณสามารถไปยังพื้นที่ที่อยู่ติดกับคุณทางทิศเหนือทิศใต้ทิศตะวันออกหรือทิศตะวันตก (ไม่มีเส้นทแยงมุม) และคุณอาจไปที่ช่องว่างที่มีค่าน้อยกว่าหรือเท่ากับค่าที่คุณ กำลังเปิดอยู่ โปรแกรมควรแสดงเส้นทางเพื่อนำทางผ่านเขาวงกตในรูปแบบเดียวกับอินพุตเฉพาะพื้นที่ที่ถูกสำรวจทั้งหมดควรมี "" ในช่องว่างเหล่านั้นและช่องว่างที่ไม่ได้เข้าชมควรมี "#" อยู่ด้วย เซลล์เริ่มต้นและจุดสิ้นสุดควรเก็บ "S" และ "X" ไว้ตามลำดับ คุณสามารถสันนิษฐานได้ว่าเขามีทางออกให้เขาวงกตเสมอ อินพุตตัวอย่าง: 3 3 3 3 2 1 S 8 9 3 1 1 3 3 0 6 8 7 1 2 2 …

5
การเปรียบเทียบรายการพจนานุกรม
อินพุต สองรายการAและBจำนวนเต็มที่ไม่ติดลบ เอาท์พุต อย่างใดอย่าง1หนึ่ง0หรือ-1ขึ้นอยู่กับว่าAมีขนาดใหญ่กว่าเท่ากับหรือเล็กกว่าที่Bเกี่ยวกับการจัดเรียงคำศัพท์บิดตามที่กำหนดไว้ด้านล่าง ถ้าคุณต้องการคุณสามารถแทนที่1, 0และ-1อื่น ๆ สามค่าคงที่ใด ๆ การเรียงลำดับพจนานุกรมแบบบิดเบี้ยวนั้นเหมือนกับการเรียงลำดับพจนานุกรมแบบธรรมดาในการที่คุณเปรียบเทียบองค์ประกอบรายการตามองค์ประกอบและตัดสินใจลำดับของพวกเขาที่ดัชนีที่แตกต่างกันครั้งแรก อย่างไรก็ตามในเวอร์ชันที่บิดเบี้ยวเราใช้การเรียงลำดับที่แตกต่างกันสำหรับจำนวนเต็มแบบไม่ลบในแต่ละดัชนี กล่าวคือในทุกดัชนีi(การทำดัชนีเริ่มต้นจาก1) ลำดับของiจำนวนเต็มที่ไม่ใช่ค่าลบแรก(จาก0ถึงi-1) จะถูกย้อนกลับและจะถูกย้ายเหนือหมายเลขอื่นทั้งหมด นอกจากนี้ยังมี "องค์ประกอบที่ขาดหายไป" ที่หมายหนึ่งรายการเป็นที่สั้นลงกว่าที่อื่น ๆ i-1จะถูกย้ายไปด้านล่าง สายตาคำสั่งซื้อที่ดัชนีiคือ i < i+1 < i+2 < i+3 < ... < [missing element] < i-1 < i-2 < i-3 < ... < 2 < 1 < 0 โปรดทราบว่าครั้งแรก...หมายถึงตัวเลขมากมาย ซึ่งหมายความว่ารายการต่อไปนี้อยู่ในลำดับจากน้อยไปมากตามการเรียงลำดับพจนานุกรมบิด: [3,2,3,4] [3,2,3,5] …

2
การค้นหาโปรแกรมในช่วงเวลาต่างๆ
มากำหนดตัวเลข 0 ถึง 94 ให้กับอักขระ ASCII 95 ที่พิมพ์ได้ : !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ ช่องว่างคือ 0 !คือ 1 และต่อ ๆ ไปจนถึง~94 เราจะกำหนด 95 ให้กับแท็บ ( \t) และ 96 ให้กับบรรทัดใหม่ ( \n) ตอนนี้ให้พิจารณาสตริงที่ไม่มีที่สิ้นสุดซึ่งมีอักขระ Nth เป็นตัวละครด้านบนที่มีการกำหนดหมายเลขเฉพาะของ Nth แบบโมดูโล 97 เราจะเรียกสตริงนี้ว่า S ตัวอย่างเช่นหมายเลขเฉพาะตัวแรกคือ 2 และ 2 mod 97 คือ 2 และ 2 ถูกกำหนดให้ "เพื่อให้ตัวอักษรตัวแรกของ S "เป็น ในทำนองเดียวกันนายกหมายเลข …

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