คำถามติดแท็ก path-finding

ปัญหาในเรขาคณิตหรือกราฟทฤษฎีที่เกี่ยวข้องกับการหาเส้นทางที่เหมาะสมที่สุด (เช่นสั้นที่สุด) ภายใต้ข้อ จำกัด (อุปสรรค)

1
ทำให้การเดินทางของฉันเย็น!
ท้าทาย เดินไปรอบ ๆ Marks and Spencers ฉันสังเกตเห็นว่าพวกเขามีเครื่องปรับอากาศวางแบบสุ่มรอบร้าน อยากให้เย็นฉันสงสัยว่าอะไรเป็นวิธีที่ง่ายที่สุดในการเดินไปรอบ ๆ ร้านโดยไม่ต้องอยู่ห่างจากเครื่องปรับอากาศนานเกินไป เมื่อได้รับแผนที่คุณต้องหาทางเดินทางรอบ ๆ แผนที่ทั้งหมดโดยรักษาระยะห่างจากเครื่องปรับอากาศให้สั้นที่สุด (แม้ว่าหน่วย AC จะอยู่อีกด้านหนึ่งของกำแพง) แผนที่ แผนที่อาจมีให้ในลักษณะที่คุณชอบและใช้สัญลักษณ์ต่อไปนี้: + is a corner of a wall | is a east/west facing wall - is a north/south facing wall X is an air conditioning unit S is the start and end point …

3
สร้างแผนที่สำหรับโร๊คไลค์
วันนี้เราจะสร้างแผนที่สำหรับเกมโร๊คไลค์ RPG! แผนที่ตัวอย่าง: ########## #### F# #### ## ## C#C# # ## # # C #E # #### # # # # #P # ########## #เป็นกำแพงPเป็นที่ตั้งเริ่มต้นของผู้เล่นFคือการจบที่ต้องไปถึงCคือเหรียญที่สามารถรวบรวมได้และEเป็นศัตรูที่สามารถต่อสู้ได้ ข้อกำหนดแผนที่: ความสูงและความกว้างควรอยู่ระหว่าง 10 ถึง 39 ความสูงไม่จำเป็นต้องมีความกว้างเท่ากัน เส้นขอบแผนที่ควรเต็มไปด้วยกำแพง P ควรอยู่ที่มุมซ้ายล่าง F ควรอยู่ที่มุมขวาบน ควรมีศัตรูตั้งแต่ 1 ถึง 3 คน ควรมีระหว่าง 2 ถึง 4 เหรียญ ควรมีกำแพงอยู่ตรงกลาง ควรจะมีเส้นทางที่จะได้รับจากPการที่ทุกคนC, EและFทำให้ทราบว่าผู้เล่นจะไม่สามารถย้ายแนวทแยงมุม …

4
ชาร์จโทรศัพท์มือถือ
ความท้าทายได้รับอนุญาตจากการประกวดรหัสมหาวิทยาลัยของฉัน การพึ่งพาเราบนโทรศัพท์มือถือทำให้เราชาร์จแบตเตอรี่ทุกคืนจนถึงระดับสูงสุดของแบตเตอรี่ดังนั้นเราจึงไม่เสี่ยงต่อการเกิดไฟฟ้าดับในช่วงกลางของวันถัดไป มีแม้กระทั่งคนที่เมื่อพวกเขาเห็นร้านขายของฟรีในระหว่างวันให้นำไปเก็บค่าใช้จ่ายสำหรับสิ่งที่อาจเกิดขึ้น ฉันเป็นหนึ่งในพวกเขา หลายปีที่ผ่านมาฉันได้ปรับปรุงเทคนิคของฉันเพื่อไม่ให้ชาร์จแบตเตอรี่ให้สูงสุดทุกคืน ด้วยกิจวัตรซ้ำ ๆ ที่รู้จักกันอย่างสมบูรณ์แบบของฉันฉันชัดเจนในเวลาของวันที่ฉันจะสามารถทำการชาร์จบางส่วนเหล่านั้น (และจำนวนหน่วยที่จะเพิ่มระดับ) และสิ่งที่ลดระดับแบตเตอรี่ระหว่างการชาร์จแต่ละครั้ง ด้วยข้อมูลเหล่านี้ทุกคืนฉันคำนวณระดับแบตเตอรี่ขั้นต่ำที่ฉันต้องออกจากบ้านในวันถัดไปด้วยเพื่อที่ว่ามันจะไม่ต่ำกว่าเกณฑ์ที่กำหนดด้วยตนเองของฉันสองหน่วย สิ่งที่ฉันยังไม่ได้จัดการเพื่อหลักคือการคำนวณเดียวกันเมื่อฉันออกจากรูทีนที่กำหนดและฉันมีทางเลือกมากมายที่จะทำ ตัวอย่างเช่นมันเกิดขึ้นในวันที่ฉันกำลังเดินทางไปยังเมืองอื่นที่ฉันสามารถไปถึงได้ในหลาย ๆ ทาง ในแนวทางแรกของปัญหาฉันคาดว่าฉันต้องการย้าย "กระดานหมากรุก" จากมุมบนซ้ายไปยังมุมขวาล่าง ใน "เซลล์" แต่ละรายการฉันสามารถเรียกเก็บเงินตามจำนวนที่ระบุได้หรือไม่สามารถทำได้และระดับการโหลดลดลง ท้าทาย รับเมทริกซ์ FxC ของจำนวนเต็มเอาท์พุทจำนวนแบตเตอรี่ระดับต่ำสุดที่ฉันต้องไปจากมุมบนซ้ายไปที่มุมล่างขวาโดยไม่ต้องระดับโหลดเคยต่ำกว่า 2 หน่วย ในเมทริกซ์จำนวนบวกแสดงว่าฉันสามารถชาร์จโทรศัพท์มือถือได้มากน้อยเพียงใดก่อนที่ฉันจะกลับมาทำงานต่อในเส้นทางของฉันในขณะที่ตัวเลขติดลบระบุว่าไม่มีช่องเสียบและแบตเตอรี่ของโทรศัพท์มือถือจะลดลงตามระดับนั้น มีการรับประกันว่าปริมาณในเซลล์ต้นทางและปลายทาง (มุมบนซ้ายและมุมขวาล่าง) เป็น 0 เสมอและค่าที่เหลือ (ค่าสัมบูรณ์) ไม่เกิน 100 ตัวอย่างที่ ให้ไว้: ⎡⎣⎢⎢⎢📱- 1- 11- 1- 1111-1-1- 1-1-1-10⎤⎦⎥⎥⎥[📱-11-1-1-1-1-1-11-1-111-10] \begin{bmatrix} 📱&-1&1&-1 \\ -1&-1&-1&-1 \\ -1&1&-1&-1 …

7
สร้างเมทริกซ์ของจาโคเบียน
ใช้เวกเตอร์ของราชวงศ์และใช้บางฟังก์ชั่นอนุพันธ์ทั่วไป จาโคเบียนจะได้รับแล้วโดยเมทริกซ์ดังกล่าวว่า: ตัวอย่างเช่นสมมติว่าและm=3 n=2จากนั้น (ใช้การจัดทำดัชนีตาม 0) ในขณะนั้นชาวโคเบียนfนั้น เป้าหมายของการท้าทายนี้คือการพิมพ์เมทริกซ์จาโคเบียนนี้ อินพุต โปรแกรม / ฟังก์ชั่นของคุณควรรับข้อมูลเป็นจำนวนเต็มบวกจำนวนเต็มสองตัวmและnแสดงจำนวนส่วนประกอบของfและuตามลำดับ อินพุตอาจมาจากแหล่งที่ต้องการ (stdio, function function, ฯลฯ ) คุณอาจกำหนดลำดับที่ได้รับสิ่งเหล่านี้และสิ่งนี้จะต้องสอดคล้องกับคำตอบของคุณ (โปรดระบุในคำตอบของคุณ) เอาท์พุต สิ่งที่แสดงถึงเมทริกซ์ของจาโคเบียน การเป็นตัวแทนนี้จะต้องสะกดองค์ประกอบทั้งหมดของเมทริกซ์ของจาโคเบียนอย่างชัดเจน แต่รูปแบบที่แน่นอนของแต่ละคำจะถูกนำไปปฏิบัติตราบใดที่ไม่มีความชัดเจนในสิ่งที่สร้างความแตกต่างและด้วยความเคารพต่อสิ่งต่างๆ ตัวอย่างแบบฟอร์มที่ยอมรับได้สำหรับการแทนเมทริกซ์: รายการของรายการที่แต่ละรายการของรายการด้านนอกสอดคล้องกับแถวของ Jacobian และแต่ละรายการของรายการภายในสอดคล้องกับคอลัมน์ของ Jacobian สตริงหรือเอาต์พุตข้อความที่แต่ละบรรทัดเป็นแถวของ Jacobian และแต่ละตัวคั่นคั่นรายการในบรรทัดสอดคล้องกับคอลัมน์ของ jacobian การแสดงกราฟิก / ภาพบางส่วนของเมทริกซ์ ตัวอย่าง: สิ่งที่แสดงโดย Mathematica เมื่อใช้MatrixFormคำสั่ง วัตถุเมทริกซ์หนาแน่นอื่น ๆ ที่ทุกรายการถูกเก็บไว้ในหน่วยความจำแล้วและสามารถสอบถามได้ (เช่นคุณไม่สามารถใช้วัตถุเครื่องกำเนิดไฟฟ้า) ตัวอย่างจะเป็นวิธีที่ Mathematica แสดงถึงวัตถุเมทริกซ์ภายใน ตัวอย่างรูปแบบรายการ: สตริงของฟอร์มd f_i/d …

3
วิธีรับจำนวน
ได้รับการป้อนข้อมูลของหมายเลขแรกและจำนวนที่สอง (ทั้งจำนวนเต็มบวกศูนย์ exluded) ที่กำหนดในหลายวิธีที่คุณสามารถทำออกมาสองคนแรกที่ใช้การดำเนินการดังต่อไปนี้+1, และ+2 *3การดำเนินการถูกนำไปใช้เพียงแค่จากซ้ายไปขวา ตัวอย่าง: อินพุต: 1 2. ผลลัพธ์: 1. คือคุณทำได้แค่2ทำ+1อย่างเดียว อินพุต: 1 3. ผลลัพธ์: 3. เช่นคุณสามารถรับ 3 โดยทำ+2หรือ+1+1, หรือ*3 อินพุต: 1 4. ผลลัพธ์: 4. อินพุต: 2 6. ผลลัพธ์: 6. อินพุต: 2 7. ผลลัพธ์: 9. อินพุต: 1 10. ผลลัพธ์: 84. ในกรณีที่มีอยู่ไม่มีวิธีเช่น100 100หรือเอาท์พุทเป็น100 800 คุณสามารถป้อนข้อมูลเป็นอาร์เรย์หรือสตริงด้วยตัวคั่นที่สะดวกได้ ทางออกที่สั้นที่สุดชนะ

2
ปกป้องความสามารถของคุณกับชีวิตของคุณ!
ให้เล่น Kick The Can! แม้ว่า Moogie จะเป็นผู้ชนะในปัจจุบันหากใครก็ตามที่สามารถสวมมงกุฎได้เขาก็ควรที่จะทำเช่นนั้น Kick the กระป๋องเป็นเกมสำหรับเด็ก เกี่ยวข้องกับผู้พิทักษ์และผู้โจมตีหลายคน วันนี้มันไม่ใช่เกมอีกต่อไปแล้ว! งานของคุณคือการเขียนบอทที่เล่นเพื่อที่จะชนะสไตล์ของกษัตริย์ ! https://en.wikipedia.org/wiki/Kick_the_can มีความแตกต่างที่สำคัญในเกมนี้ ความแตกต่างที่สำคัญอันดับแรกคือเกมนี้มีผู้เล่นหลายคน (5v5) ความแตกต่างที่สำคัญที่สองคือบอททั้งสองชุดสามารถฆ่าและกำจัดผู้เล่นศัตรูด้วยระเบิดและระเบิด! บอตไม่สามารถมองเห็นเหมืองใด ๆ (โดยไม่คำนึงถึงระยะทาง) หรือผู้เล่นที่อยู่ห่างออกไปเกินห้าช่วงตึก! แผนที่เป็นเขาวงกตดังนี้ เขาวงกตนี้สร้างขึ้นตามขั้นตอนโดยการสร้างเขาวงกตเป็นครั้งแรกโดยใช้อัลกอริทึมย้อนรอยซ้ำแบบย้อนกลับ จากนั้นวางช่องที่แสดงใน (รวมทั้งทำให้เขาวงกต "ไม่สมบูรณ์" มากขึ้นเขาวงกตมีความกว้าง 65x65 บล็อกและมีการจัดทำดัชนีเป็นศูนย์ดังนั้นธงสีฟ้า (สามารถ) ได้ที่ 1,1 และธงแดง (สามารถ) คือ ที่ 63,63. ทีมสีน้ำเงินวางไข่ที่ 2,2 และ 3,3 4,4 เป็นต้นทีมสีแดงวางไข่ที่ 62,62 และ 61,61, 60,60 ฯลฯ …

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

2
แตกปลอดภัย!
แรงบันดาลใจจาก/puzzling/24334/to-catch-a-thief คุณจะได้รับกริดnโดยn( nตัวเองเป็นอินพุตเสริม) ที่เต็มไปด้วย0s และ1s (หรืออักขระอื่น ๆ ที่คุณเลือก) คุณมุ่งหวังที่จะทำให้ทุกเซลล์เหมือนกัน (อย่างใดอย่างหนึ่ง0หรือ1) คุณสามารถสร้างชุดของการเคลื่อนไหวตามที่กำหนดไว้ด้านล่าง (หมายเหตุที่แตกต่างกันกับลิงก์ Puzzling SE): เลือกเซลล์ ทุกเซลล์ในแถวและคอลัมน์เดียวกัน (ยกเว้นเซลล์เอง) ได้รับการเปลี่ยนแปลงในทางตรงกันข้าม 0การ1และการ10 เอาท์พุทจำนวนขั้นต่ำของการย้ายที่จำเป็นในการทำงาน ถ้าแก้ไม่ได้ให้เอาต์พุตอะไรก็ได้ยกเว้นจำนวนเต็มไม่เป็นลบ รหัสที่สั้นที่สุดชนะ ข้อมูลตัวอย่าง 1 0 0 0 0 0 0 0 0 -1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 …

7
การบ้านคณิตศาสตร์ชั้นประถมศึกษาปีที่สี่สำหรับสัปดาห์: พนักงานขายการเดินทางที่ไม่มีประสิทธิภาพมากที่สุด
ลูกสาวของฉันมีการบ้านคณิตศาสตร์ต่อไปนี้ ลองนึกภาพเพื่อนหกคนที่อาศัยอยู่บนเส้นหนึ่งชื่อ E, F, G, H, J และ K ตำแหน่งของพวกเขาในบรรทัดดังที่ระบุไว้ (ไม่ขยาย) ด้านล่าง: ดังนั้น F มีชีวิตอยู่ห้าหน่วยจาก E และอีกสองหน่วยจาก G และอื่น ๆ การมอบหมายของคุณ: จัดทำโปรแกรมที่ระบุเส้นทางที่เข้าเยี่ยมเพื่อนแต่ละคนโดยมีความยาวทั้งหมดnหน่วยโดยใช้ตำแหน่งของเพื่อนและnเป็นอินพุต ควรรายงานเส้นทางหากพบ (ตัวอย่างเช่นสำหรับความยาว 17 อาจรายงาน "E, F, G, H, J, K" และควรออกอย่างสง่างามหากไม่มีวิธีแก้ปัญหาสำหรับสิ่งที่คุ้มค่าฉันเสร็จสิ้นแล้ว คำตอบที่ไม่ดีนักใน Mathematica ขนาด 271 ไบต์ฉันคิดว่ามันเป็นไปได้ที่จะกระชับกว่านั้น

2
หุ่นยนต์! รวบรวมผักดองเหล่านี้!
ฉันดูเหมือนจะทำให้ตัวเองกลายเป็นของดอง อย่างแท้จริง ฉันทิ้งผักดองไว้บนพื้นและตอนนี้พวกมันกระจัดกระจายไปหมด! ฉันต้องการให้คุณช่วยรวบรวมพวกเขาทั้งหมด โอ้ฉันไม่ได้พูดถึงว่าฉันมีหุ่นยนต์จำนวนมากอยู่ที่คำสั่งของฉันหรือไม่? (พวกมันกระจัดกระจายไปหมดทั่วทั้งสถานที่; ฉันแย่มากในการจัดระเบียบสิ่งต่าง ๆ ) คุณต้องป้อนข้อมูลในรูปแบบของ: P....... ..1..2.. .......P ........ P3PP...4 .......P เช่นหลายบรรทัดอย่างใดอย่างหนึ่ง., P(ดอง) หรือหลัก (ID ของหุ่นยนต์) (คุณอาจสมมติว่าแต่ละบรรทัดมีความยาวเท่ากันเต็มไปด้วย.) คุณสามารถป้อนบรรทัดเหล่านี้เป็นอาร์เรย์หรือ slurp จาก STDIN หรืออ่านในบรรทัดเดียวที่คั่นด้วยเครื่องหมายจุลภาคหรืออ่านไฟล์หรือทำสิ่งที่คุณต้องการ ชอบที่จะใส่ ผลลัพธ์ของคุณจะต้องอยู่ในรูปแบบของnเส้นตรงซึ่งnเป็นรหัสหุ่นยนต์สูงสุด (รหัสประจำตัวหุ่นยนต์จะเรียงตามลำดับโดยเริ่มต้นที่ 1) แต่ละบรรทัดจะมีเส้นทางของหุ่นยนต์ประกอบด้วยตัวอักษรL(ซ้าย), R(ขวา), U( ขวา), (ขึ้น) และD(ลง) ตัวอย่างเช่นต่อไปนี้เป็นตัวอย่างผลลัพธ์สำหรับปริศนาตัวต่อ: LLU RDR LRRR D มันยังสามารถ LLU RDR LRRR D หรือ ["LLU","RDR","LRRR","D"] หรือรูปแบบใดก็ได้ที่คุณต้องการตราบใดที่คุณสามารถบอกได้ว่าควรจะแก้ปัญหาอย่างไร …

1
ตัวแปรของสนามแข่งที่มีจุดสิ้นสุดที่แน่นอนและศูนย์ความเร็วเทอร์มินัล
บทนำ ความท้าทายเป็นตัวแปรที่น่าสนใจมากของสนามแข่งเกมและความท้าทายทั้งสอง: เพื่อ Vectory! - Vector Racing Grand Prix โปรแกรมรถแข่ง แหล่งที่มาของความท้าทายนี้อยู่ที่นี่ (เป็นภาษาเยอรมัน): c't-Racetrack ความท้าทายนี้น่าสนใจเป็นพิเศษ (และแตกต่างจากความท้าทายสองข้อที่กล่าวมาแล้ว) เนื่องจากเป็นการรวมพื้นที่การค้นหาขนาดใหญ่เข้ากับเงื่อนไขที่แน่นอนบางประการที่ต้องพบเจอ เนื่องจากเทคนิคการค้นหาที่ละเอียดถี่ถ้วนในการค้นหาพื้นที่ขนาดใหญ่นั้นใช้งานยากเนื่องจากเงื่อนไขที่แน่นอนวิธีการประมาณยังไม่สามารถใช้งานได้ง่าย เนื่องจากชุดค่าผสมที่ไม่ซ้ำกันนี้ (รวมถึงสัญชาตญาณพื้นฐานจากฟิสิกส์) ปัญหาน่าทึ่ง (และทุกอย่างที่เกี่ยวข้องกับรถแข่งเป็นเรื่องที่น่าสนใจอยู่แล้ว ;-) ท้าทาย ดูที่สนามแข่งต่อไปนี้ ( แหล่งที่มา ): คุณต้องเริ่มต้น(120,180)และจบอย่างแน่นอนที่(320,220)("Ziel" ในภาษาเยอรมัน) โดยไม่ต้องแตะผนังด้านใดด้านหนึ่ง รถถูกควบคุมโดยเวกเตอร์การเร่งความเร็วของแบบฟอร์ม(a_x,a_y)- เป็นตัวอย่าง: (8,-6) (10,0) (1,9) ตัวเลขแรกคือการเร่งความเร็วสำหรับ x-vector, ที่สองสำหรับ y-vector พวกเขาจะต้องเป็นจำนวนเต็มเพราะคุณได้รับอนุญาตให้ใช้จุดจำนวนเต็มในตาราง นอกจากนี้ต้องปฏิบัติตามเงื่อนไขต่อไปนี้: a_x^2 + a_y^2 <= 100, 10ซึ่งหมายความว่าการเร่งความเร็วในทิศทางใดจะต้องมีด้านล่างหรือเท่ากับ เพื่อดูว่ามันทำงานได้อย่างไรดูที่ภาพต่อไปนี้ (ที่มา ): …

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