ลดความซับซ้อนของ n multichoose k


11

ฉันมีอัลกอริทึมแบบเรียกซ้ำที่มีความซับซ้อนของเวลาเทียบเท่ากับการเลือกองค์ประกอบ k จาก n ด้วยการทำซ้ำและฉันสงสัยว่าฉันจะได้รับนิพจน์โอใหญ่ที่ง่ายขึ้นหรือไม่ ในกรณีของฉันอาจมากกว่าและพวกมันเติบโตอย่างอิสระkn

โดยเฉพาะฉันคาดหวังว่าจะมีการแสดงออกที่ชัดเจนบางอย่าง สิ่งที่ดีที่สุดที่ฉันพบได้ก็คือการประมาณดังนั้นฉันจึงสามารถใช้มันได้ แต่ฉันสงสัยว่าฉันจะได้อะไรที่ดีกว่าO(n!)O((n/2)n)

O((n+k-1k))=O(?)


สิ่งนี้ไม่ได้มีประโยชน์มากนัก แต่น่าสนใจมากสำหรับการประมาณค่าของ Ramanujan
Pratik Deoghare

ขอบคุณn!~π(nอี)n8n3+4n2+n+1306รูปลักษณ์ เหมือนการประมาณที่ดี แต่จริงๆแล้วมันไม่ได้ช่วยให้เรื่องนี้ง่ายขึ้น
yoniLavi

คำตอบ:


6

แก้ไข:คำตอบนี้สำหรับk<n<n หากไม่มีการ จำกัด ขอบเขตkในรูปของnนิพจน์จะไม่ถูก จำกัด

ถ้าแล้วการแสดงออกของคุณจะกลาย ขวา) ขอให้สังเกตว่าโดยสูตรของสเตอร์ลิงสำหรับ ที่ไหนคือไบนารีเอนโทรปี โดยเฉพาะอย่างยิ่ง 1 ดังนั้นเราจึงมีO ( ( 2 ( n - 1 ))k=n-10<α<1(O((2(n-1)n-1))0<α<1 H(Q)=-QบันทึกQ-(1-Q)เข้าสู่ระบบ(1-Q)H(1/2)=1k=n-1O( ( 2(n-1)

(ม.αม.)=Θ(ม.-1/22H(α)ม.),
H(Q)=-Qเข้าสู่ระบบQ-(1-Q)เข้าสู่ระบบ(1-Q)H(1/2)=1k=n-1
O((2(n1)n1))=Θ((2n2)1/222n2)=Θ(4nn).

เนื่องจากขอบเขตบนเป็นกรณีที่เลวร้ายที่สุด (ฉันปล่อยให้มันเป็นแบบฝึกหัดเพื่อแสดงสิ่งนี้) การแสดงออกของคุณคือ .O ( 4 nk=n1O(4nn)


ขอบคุณสิ่งที่ฉันกำลังมองหา! และยังมีอีกสิ่งหนึ่งที่กระตุ้นให้ฉันศึกษาทฤษฎีข้อมูล
yoniLavi

@ Falcor84: ฉันมีตัวพิมพ์เล็กในการเปลี่ยนครั้งล่าสุด ส่วนรากที่สองรีบไปที่ตัวส่วน ดังนั้นที่ถูกผูกไว้เป็นเล็กน้อยดีกว่าหนึ่งที่นำเสนอโดย Paresh (ที่จริงแล้วขอบเขตมีความตึงเชิงเส้นกำกับ)
A.Schulz

ฉันก็ควรสังเกตว่าเครื่องหมายลบเล็ก ๆ น้อย ๆ ขอบคุณอีกครั้ง
yoniLavi

คำสั่ง "ซ้ายเป็นแบบฝึกหัด" ของคุณที่เป็นกรณีที่เลวร้ายที่สุดนั้นผิด ถ้า , การแสดงออกเป็น{2} สิ่งนี้ไม่น้อยกว่าเสมอ n = 3 ( k + 2k=n-1n=3(k+2k)=(k+22)=(k+1)(k+2)2(42)=6
Peter Shor

1
เนื่องจากปัญหาคือสมมาตรในและ (ซึ่งสามารถเติบโตโดยไม่มีความสัมพันธ์ในกรณีของฉัน ) ดังนั้นฉันคิดว่าคำตอบที่ถูกต้องมากขึ้นคือการแทนที่ n ในส่วนสุดท้ายของคำตอบด้วย(n+k-1k)=(n+k-1n-1)nkx=ม.ax(n,k)
yoniLavi

2

Wolfram พูดว่า Sondow (2005) [1] และ Sondow และ Zudilin (2006) [2] ตั้งข้อสังเกตถึงความไม่เท่าเทียมกัน: สำหรับจำนวนเต็มบวกและ a จำนวนจริง

14Rม.[(R+1)R+1RR]ม.<((R+1)ม.ม.)<[(R+1)R+1RR]ม.
ม.R1

จากนั้นเราสามารถใช้ กับและ .

(n+k-1k)<(n+kk)=((R+1)ม.ม.)
R=nkม.=k

จากนั้นเรามี

(n+k-1k)<[(R+1)R+1RR]ม.=(n+kk)n+k

ตอนนี้นิพจน์ทวินามมีค่าสูงสุดที่กึ่งกลางของสามเหลี่ยมปาสคาล ดังนั้นในกรณีของเราหรือnn+k=2kk=n

แทนว่าในความไม่เท่าเทียมกันข้างต้นเราจะได้รับ: n

(n+k-1k)<22n=4n

ดังนั้นการที่ถูกผูกไว้ที่เข้มงวดมากขึ้นเป็นn)

(n+k-1k)=O(4n)

คุณจะเห็นได้ว่าขอบล่างของค่าสูงสุดคือ

(n+k-1k)=Ω(4nn)

ข้อมูลอ้างอิง:
[1] Sondow, J. "ปัญหา 11132" อาเมอร์ คณิตศาสตร์. รายเดือน 112, 180, 2005
[2] Sondow, J. และ Zudilin, W. "ค่าคงที่ของออยเลอร์, q-logarithms และสูตรของ Ramanujan และ Gosper" Ramanujan 12, 225-244, 2006

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