เวลาพหุนามและเวลาเอกซ์โพเนนเชียล


91

ใครช่วยอธิบายความแตกต่างระหว่างอัลกอริทึมพหุนามเวลาไม่ใช่พหุนามเวลาและเวลาเอกซ์โพเนนเชียล

ตัวอย่างเช่นหากอัลกอริทึมใช้เวลา O (n ^ 2) แล้วจะอยู่ในหมวดหมู่ใด

คำตอบ:


87

ตรวจสอบนี้ออก

เอกซ์โปเนนเชียลแย่กว่าพหุนาม

O (n ^ 2) จัดอยู่ในหมวดกำลังสองซึ่งเป็นประเภทของพหุนาม (กรณีพิเศษของเลขชี้กำลังเท่ากับ 2) และดีกว่าเลขชี้กำลัง

เอกเป็นมากยิ่งกว่าพหุนาม ดูว่าฟังก์ชันเติบโตอย่างไร

n    = 10    |     100   |      1000

n^2  = 100   |   10000   |   1000000 

k^n  = k^10  |   k^100   |    k^1000

k ^ 1000 มีขนาดใหญ่เป็นพิเศษเว้นแต่ k จะเล็กกว่า 1.1 เช่นเดียวกับทุกอนุภาคในจักรวาลจะต้องทำการปฏิบัติการ 100 พันล้านพันล้านต่อวินาทีเป็นเวลาหลายล้านล้านพันล้านพันล้านปีเพื่อให้สำเร็จ

ฉันไม่ได้คำนวณออกมา แต่มันใหญ่มาก


29
ฉันสนุกกับภาพลวงตาทั้งหมดของคุณ
โจเซฟิน

7
k ^ 1000 มีขนาดใหญ่มากหาก k มีขนาดใหญ่กว่า 1 อย่างเห็นได้ชัดถ้า k = 1 มันน่าประทับใจน้อยกว่าและถ้า k = 1.00069387 ... ก็คือ 2
โจเซฟิน

2
แล้ว n! เทียบกับ k ^ n ฉันรู้สำหรับ 2 ^ n (ที่พบบ่อยที่สุด), n! จะแพงกว่า แต่ฉันเชื่อว่าสำหรับ k ^ n ทั่วไปที่ k> 2, n! จะมีราคาไม่แพง
ซาด

1
ฉันดีใจที่คุณไม่ได้พูดว่า "พันล้านพันล้าน" :-)
Tom Russell

@ สอาดเอ็น! จะแพงกว่า k ^ n สำหรับค่าคงที่ k เสมอโดยไม่มีอาการ คุณพูดถูกอย่างไรก็ตามนี่เป็นกรณีที่เรามีค่า n สูงเท่านั้น จากการประมาณของ Stirling เวลาแฟกทอเรียลน่าจะแพงกว่าเมื่อ n = e * k โดยที่ e = 2.71828 ..
inavda

140

ด้านล่างนี้คือฟังก์ชัน Big-O ทั่วไปในขณะที่วิเคราะห์อัลกอริทึม

  • O ( 1 ) - เวลาคงที่
  • O ( log (n) ) - เวลาลอการิทึม
  • O ( (log (n)) c ) - เวลา polylogarithmic
  • O ( n ) - เวลาเชิงเส้น
  • O ( n 2 ) - เวลากำลังสอง
  • O ( n c ) - เวลาพหุนาม
  • O ( c n ) - เวลาเอกซ์โพเนนเชียล
  • O ( n! ) - เวลาแฟกทอเรียล

(n = ขนาดของอินพุต c = ค่าคงที่)

นี่คือกราฟแบบจำลองที่แสดงถึงความซับซ้อนของ Big-O ของบางฟังก์ชัน

แบบจำลองกราฟ

ไชโย :-)

เครดิตกราฟhttp://bigocheatsheet.com/


12
บวกหนึ่งสำหรับคำน้อยและชัดเจนมากขึ้น
user3144836

1 = n ^ 0 ดังนั้นพหุนามด้วย
BigChief

46

O (n ^ 2) คือเวลาพหุนาม พหุนามคือ f (n) = n ^ 2 ในทางกลับกัน O (2 ^ n) คือเวลาเอกซ์โพเนนเชียลโดยที่ฟังก์ชันเลขชี้กำลังโดยนัยคือ f (n) = 2 ^ n ความแตกต่างคือว่าฟังก์ชันของ n วาง n ในฐานของการยกกำลังหรือในเลขชี้กำลังเอง

ฟังก์ชันการเติบโตแบบเลขชี้กำลังจะเติบโตเร็วกว่า (ระยะยาว) อย่างมีนัยสำคัญมากกว่าฟังก์ชันพหุนามใด ๆ ดังนั้นความแตกต่างจึงเกี่ยวข้องกับประสิทธิภาพของอัลกอริทึมโดยเฉพาะอย่างยิ่งสำหรับค่าที่มากของ n


คำตอบนี้มีอากาศที่เชื่อถือได้ (ดี) แต่มันแตกต่างจากคำตอบของ @dheeran ฉันเชื่อว่าฐานในกรณีเอกซ์โพเนนเชียลจำเป็นต้องเป็น 2 หรือไม่หรือฉันอาจเข้าใจผิดและเพียงแค่ปัดฝุ่นออกจากพีชคณิต
Tom Russell

21

เวลาพหุนาม

พหุนามคือผลรวมของคำศัพท์ที่มีลักษณะเหมือนConstant * x^k เลขชี้กำลังหมายถึงConstant * k^x

(ในทั้งสองกรณี k คือค่าคงที่และ x เป็นตัวแปร)

เวลาดำเนินการของอัลกอริทึมเอกซ์โพเนนเชียลจะเติบโตเร็วกว่าของพหุนามมาก


18

เอกซ์โพเนนเชียล (คุณมีฟังก์ชันเอกซ์โพเนนเชียลหาก MINIMAL ONE EXPONENT ขึ้นอยู่กับพารามิเตอร์):

  • เช่น f (x) = ค่าคงที่ ^ x

พหุนาม (คุณมีฟังก์ชันพหุนามถ้า NO EXPONENT ขึ้นอยู่กับพารามิเตอร์ฟังก์ชันบางอย่าง):

  • เช่นค่าคงที่ f (x) = x ^

4
ฉันไม่ชอบถ้าไม่มีคำตอบเดิมของฉันเหลืออยู่หลังจากที่ผู้ใช้แก้ไขแล้ว นี่คือ "การตกปลา" แบบหนึ่งหรือไม่?
Erhard Dinhobl

2
ฉันต้องเห็นด้วย การเปลี่ยนแปลงนั้นไร้สาระ
เสาร์บนราง

3

เวลาพหุนาม O (n) ^ k หมายถึงจำนวนการดำเนินการเป็นสัดส่วนกับกำลัง k ของขนาดของอินพุต

เวลาเอกซ์โพเนนเชียล O (k) ^ n หมายถึงจำนวนการดำเนินการเป็นสัดส่วนกับเลขชี้กำลังของขนาดของอินพุต


0

o (n sequre) เป็นความซับซ้อนของเวลาแบบพหุนามในขณะที่ o (2 ^ n) เป็นความซับซ้อนของเวลาแบบเอ็กซ์โปเนนเชียลถ้า p = np เมื่อเป็นกรณีที่ดีที่สุดในกรณีที่เลวร้ายที่สุด p = np ไม่เท่ากันเนื่องจากเมื่อขนาดอินพุต n เติบโตนานมากหรือตัวปรับขนาดอินพุตเพิ่มขึ้นดังนั้น อีกต่อไปมันจะเป็นกรณีที่เลวร้ายที่สุดและการจัดการดังนั้นอัตราการเติบโตที่ซับซ้อนจึงเพิ่มขึ้นและขึ้นอยู่กับ n ขนาดของอินพุตเมื่ออินพุตมีขนาดเล็กมันจะเป็นแบบพหุนามเมื่อขนาดอินพุตใหญ่และใหญ่ดังนั้น p = np ไม่เท่ากันหมายความว่าอัตราการเติบโตขึ้นอยู่กับขนาดของอินพุต "N ". การเพิ่มประสิทธิภาพ sat กลุ่มและชุดอิสระยังพบในเลขชี้กำลังถึงพหุ

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