คำถามติดแท็ก dynamic-programming

10
การเขียนโปรแกรมแบบไดนามิกคืออะไร? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน10 เดือนที่ผ่านมา ปรับปรุงคำถามนี้ การเขียนโปรแกรมแบบไดนามิกคืออะไร? มันแตกต่างจากการเรียกซ้ำบันทึก ฯลฯ อย่างไร ฉันได้อ่านบทความวิกิพีเดียแล้ว แต่ฉันยังไม่เข้าใจจริงๆ

9
ความแตกต่างระหว่างการบันทึกและการเขียนโปรแกรมแบบไดนามิกคืออะไร?
ความแตกต่างระหว่างการบันทึกและการเขียนโปรแกรมแบบไดนามิกคืออะไร? ฉันคิดว่าการเขียนโปรแกรมแบบไดนามิกเป็นส่วนหนึ่งของการบันทึกความจำ ถูกต้องหรือไม่

19
วิธีการตรวจสอบลำดับที่เพิ่มขึ้นที่ยาวที่สุดโดยใช้การเขียนโปรแกรมแบบไดนามิก?
ฉันมีชุดจำนวนเต็ม ฉันต้องการค้นหาชุดลำดับที่เพิ่มขึ้นที่ยาวที่สุดโดยใช้การเขียนโปรแกรมแบบไดนามิก

8
อะไรคือความแตกต่างระหว่างจากบนลงล่างและจากบนลงล่าง?
วิธีการจากล่างขึ้นบน (สู่การเขียนโปรแกรมแบบไดนามิก) ประกอบด้วยการดูปัญหาย่อย "เล็ก" เป็นครั้งแรกจากนั้นจึงแก้ปัญหาย่อยที่ใหญ่กว่าโดยใช้วิธีแก้ไขปัญหาที่มีขนาดเล็กลง จากบนลงล่างประกอบด้วยการแก้ปัญหาในลักษณะ "เป็นธรรมชาติ" และตรวจสอบว่าคุณได้คำนวณวิธีแก้ปัญหาไปยังปัญหาย่อยแล้วหรือไม่ ฉันสับสนเล็กน้อย ความแตกต่างระหว่างสองสิ่งนี้คืออะไร?

9
ขว้างแมวออกไปนอกหน้าต่าง
ลองนึกภาพคุณอยู่ในอาคารสูงที่มีแมว แมวสามารถมีชีวิตรอดตกจากหน้าต่างชั้นต่ำ แต่จะตายหากถูกโยนลงมาจากชั้นสูง คุณจะรู้ได้อย่างไรว่าหยดที่ยาวที่สุดที่แมวสามารถอยู่รอดได้โดยใช้จำนวนครั้งน้อยที่สุด? เห็นได้ชัดว่าถ้าคุณมีแมวเพียงตัวเดียวคุณก็สามารถค้นหาแบบเชิงเส้นได้ ก่อนโยนแมวจากชั้นแรก หากยังมีชีวิตอยู่ให้โยนออกจากวินาที ในที่สุดหลังจากถูกโยนจากพื้น f แมวจะตาย คุณจะรู้ว่าชั้น f-1 เป็นชั้นที่ปลอดภัยที่สุด แต่ถ้าคุณมีแมวมากกว่าหนึ่งตัว ตอนนี้คุณสามารถลองค้นหาแบบลอการิทึมได้แล้ว สมมติว่าบิลด์มี 100 ชั้นและคุณมีแมวเหมือนกันสองตัว หากคุณโยนแมวตัวแรกออกจากชั้นที่ 50 แล้วคุณจะต้องค้นหา 50 ชั้นอย่างเป็นเส้นตรง คุณสามารถทำได้ดียิ่งขึ้นถ้าคุณเลือกชั้นล่างสำหรับความพยายามครั้งแรกของคุณ สมมติว่าคุณเลือกที่จะจัดการปัญหา 20 ชั้นในเวลาเดียวกันและชั้นที่ร้ายแรงที่สุดคือ # 50 ในกรณีนี้แมวตัวแรกของคุณจะรอดจากเที่ยวบินชั้น 20 และ 40 ก่อนตายจากชั้น 60 คุณเพียงแค่ต้องตรวจสอบชั้น 41 ถึง 49 ทีละตัว นั่นคือทั้งหมด 12 ครั้งซึ่งดีกว่า 50 อย่างที่คุณต้องการหากคุณพยายามกำจัดเลขฐานสอง โดยทั่วไปแล้วกลยุทธ์ที่ดีที่สุดคืออะไรและมีความซับซ้อนในกรณีที่เลวร้ายที่สุดสำหรับอาคารที่ไม่มีแมวสองตัว แล้วสำหรับชั้น n และแมว m …

8
ความแตกต่างระหว่าง Divide และ Conquer Algo และ Dynamic Programming
ความแตกต่างระหว่างอัลกอริธึมการหารและการพิชิตและอัลกอริธึมการเขียนโปรแกรมแบบไดนามิกคืออะไร? คำสองคำแตกต่างกันอย่างไร ฉันไม่เข้าใจความแตกต่างระหว่างพวกเขา โปรดยกตัวอย่างง่ายๆเพื่ออธิบายความแตกต่างระหว่างสองสิ่งนี้กับสิ่งที่ดูเหมือนว่าคล้ายคลึงกัน

5
ตัวอย่างง่ายๆสำหรับผู้ที่ต้องการเข้าใจ Dynamic Programming [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังมองหาตัวอย่างที่เข้าใจได้ง่ายสำหรับผู้ที่ต้องการเรียนรู้ Dynamic Programming มีคำตอบที่ดีอยู่ที่นี่เกี่ยวกับสิ่งที่เขียนโปรแกรมแบบไดนามิก ลำดับฟีโบนักชีเป็นตัวอย่างที่ดี แต่มีขนาดเล็กเกินไปที่จะขูดขีดบนพื้นผิว มันดูเป็นเรื่องที่ดีในการเรียนรู้แม้ว่าฉันจะยังไม่ได้เรียนอัลกอริทึม แต่หวังว่ามันจะอยู่ในรายชื่อของฉันสำหรับฤดูใบไม้ผลิ

4
ทำไมเป้มีปัญหา pseudo-polynomial?
ฉันรู้ว่าKnapsackNP สมบูรณ์ในขณะที่ DP สามารถแก้ไขได้ พวกเขากล่าวว่าโซลูชัน DP คือpseudo-polynomialเนื่องจากเป็นเลขชี้กำลังใน "ความยาวของอินพุต" (เช่นจำนวนบิตที่ต้องใช้ในการเข้ารหัสอินพุต) น่าเสียดายที่ฉันไม่ได้รับมัน ใครช่วยอธิบายpseudo-polynomialเรื่องนั้นให้ฉันฟังช้าๆ

4
ค่าใช้จ่ายขั้นต่ำในการเชื่อมต่อเกาะทั้งหมดคืออะไร?
มีตารางของขนาดN x M เซลล์บางคนเป็นหมู่เกาะที่แสดงโดย '0' และคนอื่น ๆ ที่มีน้ำ เซลล์น้ำแต่ละเซลล์จะมีตัวเลขแสดงถึงต้นทุนของสะพานที่สร้างขึ้นบนเซลล์นั้น คุณต้องหาต้นทุนขั้นต่ำที่เกาะทั้งหมดสามารถเชื่อมต่อได้ เซลล์เชื่อมต่อกับเซลล์อื่นถ้ามันใช้ขอบหรือจุดสุดยอดร่วมกัน อัลกอริทึมใดที่สามารถใช้แก้ปัญหานี้ได้ สิ่งที่สามารถใช้เป็นแนวทางบังคับเดรัจฉานได้ถ้าค่าของ N, M น้อยมากให้พูดว่า NxM <= 100? ตัวอย่าง : ในภาพที่ระบุเซลล์สีเขียวระบุเกาะเซลล์สีน้ำเงินหมายถึงน้ำและเซลล์สีฟ้าอ่อนบ่งบอกเซลล์ที่ควรสร้างสะพาน ดังนั้นภาพต่อไปนี้คำตอบจะ17 เริ่มแรกฉันคิดว่าจะทำเครื่องหมายเกาะทั้งหมดเป็นโหนดและเชื่อมต่อเกาะทุกคู่ด้วยสะพานที่สั้นที่สุด จากนั้นปัญหาอาจลดลงเป็นต้นไม้ที่มีระยะห่างน้อยที่สุด แต่ด้วยวิธีนี้ฉันพลาดกรณีที่ขอบทับซ้อนกัน ตัวอย่างเช่นในภาพต่อไปนี้ระยะทางที่สั้นที่สุดระหว่างสองเกาะใด ๆ คือ7 (ทำเครื่องหมายด้วยสีเหลือง) ดังนั้นการใช้ต้นไม้ที่มีระยะห่างขั้นต่ำคำตอบจะเป็น14แต่คำตอบควรเป็น11 (ทำเครื่องหมายด้วยสีฟ้าอ่อน)

3
วิธีค้นหาจำนวนการเคลื่อนไหวขั้นต่ำเพื่อย้ายรายการไปยังตำแหน่งในกองซ้อน?
เมื่อกำหนดชุดของสแต็ค NXP โดยที่ N เป็นจำนวนสแต็คและ P เป็นความสามารถของสแต็คฉันจะคำนวณจำนวนสว็อปขั้นต่ำที่จำเป็นในการย้ายจากโหนดบางจุดในตำแหน่ง A ไปยังตำแหน่ง A ได้อย่างไร ฉันออกแบบเกมและเป้าหมายสุดท้ายคือเรียงลำดับสแต็คทั้งหมดเพื่อให้มีสีเดียวกัน # Let "-" represent blank spaces, and assume the stacks are stacks = [ ['R', 'R', 'R', 'R'], ['Y', 'Y', 'Y', 'Y'], ['G', 'G', 'G', 'G'], ['-', '-', '-', 'B'], ['-', 'B', 'B', 'B'] ] ถ้าผมต้องการที่จะใส่ "B" ที่ดังกล่าวว่าstacks[1][1] …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.