คำถามติดแท็ก combinatorics

คำถามที่เกี่ยวข้องกับ combinatorics และโครงสร้างทางคณิตศาสตร์ที่ไม่ต่อเนื่อง

11
การแก้ไขหรือการประมาณความสัมพันธ์ที่เกิดซ้ำสำหรับลำดับของตัวเลข
ในวิทยาการคอมพิวเตอร์เรามักจะต้องแก้ปัญหาความสัมพันธ์ซ้ำซึ่งเป็นรูปแบบปิดสำหรับลำดับตัวเลขที่กำหนดซ้ำ เมื่อพิจารณาจากเวลาการทำงานเรามักจะให้ความสนใจส่วนใหญ่อยู่ในลำดับที่asymptoticการเจริญเติบโต ตัวอย่างคือ รันไทม์ของฟังก์ชั่น tail-recursive ลดลงเหลือจากซึ่งร่างกายใช้เวลา :000nnnf(n)f(n)f(n) T(0)T(n+1)=0=T(n)+f(n)T(0)=0T(n+1)=T(n)+f(n)\qquad \begin{align} T(0) &= 0 \\ T(n+1) &= T(n) + f(n) \end{align} ลำดับฟีโบนักชี : F0F1Fn+2=0=1=Fn+Fn+1F0=0F1=1Fn+2=Fn+Fn+1\qquad \begin{align} F_0 &= 0 \\ F_1 &= 1 \\ F_{n+2} &= F_n + F_{n+1} \end{align} จำนวนคำ Dyckกับคู่วงเล็บ:nnn C0Cn+1=1=∑i=0nCiCn−iC0=1Cn+1=∑i=0nCiCn−i\qquad\begin{align} C_0 &= 1 \\ C_{n+1}&=\sum_{i=0}^{n}C_i\,C_{n-i} \end{align} การเกิดซ้ำรันไทม์การผสานบนรายการความยาว :nnn T(1)T(n)=T(0)=0=T(⌊n/2⌋)+T(⌈n/2⌉)+n−1T(1)=T(0)=0T(n)=T(⌊n/2⌋)+T(⌈n/2⌉)+n−1\qquad \begin{align} …

4
ปัญหา 3SUM (k-SUM) ทั่วไปใช่ไหม
3sumปัญหาพยายามที่จะระบุจำนวนเต็ม 3จากชุดขนาดเช่นที่0a,b,ca,b,ca,b,cSSSnnna+b+c=0a+b+c=0a + b + c = 0 มันเป็นที่คาดคะเนได้ว่าจะไม่มีทางออกที่ดีกว่ากำลังสองคือ2) หรือจะนำมันแตกต่างกัน:2)o(n2)o(n2)\mathcal{o}(n^2)o(nlog(n)+n2)o(nlog⁡(n)+n2)\mathcal{o}(n \log(n) + n^2) ดังนั้นฉันสงสัยว่าสิ่งนี้จะนำไปใช้กับปัญหาทั่วไป: ค้นหาจำนวนเต็มสำหรับในเซตขนาดเช่นนั้น .aiaia_ii∈[1..k]i∈[1..k]i \in [1..k]SSSnnn∑i∈[1..k]ai=0∑i∈[1..k]ai=0\sum_{i \in [1..k]} a_i = 0 ฉันคิดว่าคุณสามารถทำสิ่งนี้ได้ในสำหรับ (มันไม่สำคัญที่จะพูดคุยกับอัลกอริธึมธรรมดา) แต่มีอัลกอริธึมที่ดีกว่าสำหรับค่าอื่น ๆหรือไม่?o(nlog(n)+nk−1)o(nlog⁡(n)+nk−1)\mathcal{o}(n \log(n) + n^{k-1})k≥2k≥2k \geq 2k=3k=3k=3kkk

2
ทำไมจึงมีฟังก์ชั่นที่ไม่คำนวณได้มากกว่าฟังก์ชั่นที่คำนวณได้?
ฉันกำลังอ่านหนังสือในขั้นตอนวิธีและความซับซ้อน ในขณะนี้ฉันกำลังอ่านเกี่ยวกับฟังก์ชันที่คำนวณและไม่คำนวณและหนังสือของฉันระบุว่ามีฟังก์ชั่นอื่น ๆ อีกมากมายที่ไม่สามารถคำนวณได้มากกว่าที่คำนวณได้ในความเป็นจริงส่วนใหญ่ไม่สามารถคำนวณได้ ในบางแง่ฉันสามารถยอมรับได้อย่างสังหรณ์ใจ แต่หนังสือเล่มนี้ไม่ได้ให้การพิสูจน์ที่เป็นทางการและไม่ได้อธิบายอย่างละเอียดในหัวข้อ ฉันแค่อยากจะเห็นหลักฐาน / ให้ใครบางคนที่นี่อย่างละเอียดเกี่ยวกับเรื่องนี้ / เข้าใจอย่างเข้มงวดมากขึ้นว่าทำไมมีฟังก์ชั่นที่ไม่สามารถคำนวณได้มากมายมากกว่าฟังก์ชั่นที่คำนวณได้

1
Asymptotics ของจำนวนคำในภาษาปกติของความยาวที่กำหนด
สำหรับภาษาปกติLLLให้cn(L)cn(L)c_n(L)เป็นจำนวนคำในLLLความยาวnnnnใช้จอร์แดนรูปแบบที่ยอมรับ (นำไปใช้กับเมทริกซ์การเปลี่ยนแปลง unannotated ของ DFA บางอย่างสำหรับLLL ) หนึ่งสามารถแสดงให้เห็นว่าใหญ่พอnnn , cn(L)=∑i=1kPi(n)λni,cn(L)=∑i=1kPi(n)λin, c_n(L) = \sum_{i=1}^k P_i(n) \lambda_i^n, ที่มี ชื่อพหุนามแบบซับซ้อนและPiPiP_iλiλi\lambda_i"ค่าลักษณะเฉพาะ" ที่ซับซ้อน (สำหรับขนาดเล็กเราอาจมีข้อกำหนดเพิ่มเติมของแบบฟอร์มโดยที่คือถ้าและอย่างอื่นสิ่งเหล่านี้สอดคล้องกับบล็อกของจอร์แดนที่มีขนาดอย่างน้อยมีค่าลักษณะเฉพาะ )nnnCk[n=k]Ck[n=k]C_k[n=k][n=k][n=k][n=k]111n=kn=kn=k000k+1k+1k+1000 การแสดงนี้ดูเหมือนจะบ่งบอกว่าถ้าเป็นอนันต์แล้ว asymptotically,สำหรับบาง 0 อย่างไรก็ตามนี่เป็นความเท็จอย่างชัดแจ้ง: สำหรับภาษามากกว่าของทุกคำที่มีความยาวเท่ากันแต่ . นี้แสดงให้เห็นว่าบางและสำหรับทั้งหมดทั้งสำหรับขนาดใหญ่พอหรือA} นี่คือการพิสูจน์ในFlajolet & SedgewickLLLcn(L)∼Cnkλncn(L)∼Cnkλnc_n(L) \sim C n^k \lambda^nC,λ>0C,λ>0C,\lambda>0LLL{0,1}{0,1}\{0,1\}c2n(L)=22nc2n(L)=22nc_{2n}(L) = 2^{2n}c2n+1(L)=0c2n+1(L)=0c_{2n+1}(L) = 0ddda∈{0,…,d−1}a∈{0,…,d−1}a \in \{0,\ldots,d-1\}cdm+a(L)=0cdm+a(L)=0c_{dm+a}(L) = 0mmmcdm+a∼Ca(dm+a)kaλdm+aacdm+a∼Ca(dm+a)kaλadm+ac_{dm+a} \sim C_a (dm+a)^{k_a} \lambda_a^{dm+a} (ทฤษฎีบท V.3) ซึ่งเป็นผู้พิสูจน์ข้อพิสูจน์ของ Berstel …

2
การนับต้นไม้ไบนารี
(ฉันเป็นนักเรียนที่มีพื้นฐานทางคณิตศาสตร์และฉันต้องการทราบวิธีนับจำนวนต้นไม้ไบนารีที่เฉพาะเจาะจง) เมื่อดูที่หน้า Wikipedia สำหรับBinary Treesฉันได้สังเกตการยืนยันนี้ว่าจำนวนต้นไม้ไบนารีที่รูทขนาดจะเป็นจำนวนคาตาลันนี้: C_n = \ dfrac {1} {n + 1} {2n \ select n}nnnCn=1n+1(2nn)Cn=1n+1(2nn)C_n = \dfrac{1}{n+1}{2n \choose n} แต่ฉันไม่เข้าใจว่าฉันจะได้ผลลัพธ์เช่นนี้ด้วยตัวเองได้อย่างไร มีวิธีการค้นหาผลลัพธ์นี้หรือไม่? ทีนี้ถ้าหากคำสั่งของต้นไม้ย่อย (ซึ่งเหลืออยู่ไหนถูกต้อง) จะไม่ถูกนำมาพิจารณา? ตัวอย่างเช่นจากมุมมองของฉันฉันคิดว่าต้นไม้สองต้นนี้เหมือนกัน: /\ /\ /\ /\ มันจะเป็นไปได้ที่จะใช้วิธีการคล้ายกับการนับจำนวนของวัตถุเหล่านี้ได้ว่าnnnโหนด?

1
อัลกอริทึมโลภสามารถแก้ไขปัญหาการเปลี่ยนเหรียญได้เมื่อใด
ให้ชุดเหรียญที่มีค่าแตกต่างกันและค่า v คุณต้องการค้นหาจำนวนเหรียญที่น้อยที่สุดที่จำเป็นในการแทนค่า vc1,...,cnc1,...,cnc1, ... , cn เช่นสำหรับชุดเหรียญ 1,5,10,20 สิ่งนี้ให้ 2 เหรียญสำหรับผลรวม 6 และ 6 เหรียญสำหรับผลรวม 19 คำถามหลักของฉันคือเมื่อสามารถใช้กลยุทธ์โลภเพื่อแก้ปัญหานี้ได้อย่างไร คะแนนโบนัส: ข้อความนี้ไม่ถูกต้องธรรมดาหรือไม่ (จาก: จะทราบได้อย่างไรว่าอัลกอริทึมโลภเพียงพอสำหรับปัญหาการเปลี่ยนเหรียญขั้นต่ำหรือไม่ ) อย่างไรก็ตามบทความนี้มีข้อพิสูจน์ว่าหากอัลกอริทึมโลภใช้ได้กับค่า denom ที่ใหญ่ที่สุด + ค่า denom ที่ใหญ่เป็นอันดับสองมันก็ใช้ได้กับมันทั้งหมดและมันแสดงให้เห็นเพียงแค่ใช้อัลกอริธึมโลภเทียบกับอัลกอริธึม DP ที่เหมาะสมที่สุด http://www.cs.cornell.edu/~kozen/papers/change.pdf ps โปรดทราบว่าคำตอบในหัวข้อนั้นพังอย่างไม่น่าเชื่อ - นั่นคือเหตุผลที่ฉันถามคำถามใหม่

2
อัลกอริทึมที่มีประสิทธิภาพสำหรับ 'unsumming' ชุดจำนวนเงิน
รับชุดของตัวเลขธรรมชาติ X พิจารณาชุดของผลรวมที่เป็นไปได้ทั้งหมด: จำนวนเงิน (X) = { ∑ฉัน∈ผม|A ⊆ X}sums(X)={∑i∈Ai|A⊆X}\textrm{sums}(X)= \left\{ \sum_{i \in A} i \,|\, A \subseteq X \right\} ยกตัวอย่างเช่นผลรวม ( { 1 , 5 } )= { 0 ,1,5,6}sums({1,5})={0,1,5,6}\textrm{sums}(\left\{1,5\right\}) = \left\{0, 1, 5, 6\right\}ในขณะที่ sums({1,1})={0,1,2}sums({1,1})={0,1,2}\textrm{sums}(\left\{1,1\right\}) = \left\{0, 1, 2\right\} } อัลกอริธึมที่มีประสิทธิภาพมากที่สุดสำหรับการคำนวณการดำเนินการผกผันคืออะไร โดยเฉพาะมันเป็นไปได้ที่จะคำนวณอย่างมีประสิทธิภาพต่อไปนี้: ไม่ว่าจะเป็นชุดที่กำหนดเป็นชุดผลรวมที่ถูกต้อง (ตัวอย่างเช่น{0,1,2}{0,1,2}\left\{0,1,2\right\}ถูกต้อง แต่{0,1,3}{0,1,3}\left\{0,1,3\right\}ไม่ถูกต้อง) เซ็ตมัลติเซตที่รวมกับเซ็ตที่กำหนด ชุดมัลติเซ็ตที่เล็กที่สุดที่รวมกับเซ็ตที่กำหนด (ตัวอย่างเช่น{1,2}{1,2}\left\{1,2\right\}และ{1,1,1}{1,1,1}\left\{1,1,1\right\}ทั้งผลรวมเป็น{0,1,2,3}{0,1,2,3}\left\{0,1,2,3\right\}แต่ตัวเก่ามีขนาดเล็กลง)

1
วิธีพื้นฐานคือ matroids และ greedoids ในการออกแบบอัลกอริทึม?
ในขั้นต้นmatroidsถูกนำไปพูดคุยความคิดของการเป็นอิสระเชิงเส้นของชุดของส่วนย่อยที่บางชุดพื้นดินฉันปัญหาบางอย่างที่มีโครงสร้างนี้อนุญาตให้อัลกอริทึมโลภค้นหาวิธีแก้ปัญหาที่ดีที่สุด แนวคิดของgreedoidsต่อมาได้รับการแนะนำให้รู้จักกับโครงสร้างทั่วไปนี้เพื่อจับปัญหามากขึ้นที่ช่วยให้การแก้ปัญหาที่ดีที่สุดที่จะพบได้โดยวิธีการโลภEEEผมผมI โครงสร้างเหล่านี้เกิดขึ้นบ่อยเพียงใดในการออกแบบอัลกอริทึม นอกจากนี้บ่อยครั้งที่อัลกอริทึมโลภมักจะไม่สามารถจับภาพสิ่งที่จำเป็นในการค้นหาคำตอบที่ดีที่สุด แต่อาจยังพบวิธีแก้ปัญหาที่ดีโดยประมาณ (ตัวอย่างเช่นการบรรจุในถังขยะ) ระบุว่ามีวิธีวัดว่า "ปิด" ปัญหาคือ greedoid หรือ matroid หรือไม่?

1
การอ้างสิทธิ์การค้าพิซซ่าของ 34 ล้านชุด
พาณิชย์พิซซ่าอ้างว่าคุณสามารถรวมส่วนผสมของพวกเขาให้ได้ 34 ล้านชุดค่าผสม ฉันไม่เชื่อดังนั้นฉันจึงกำจัดทักษะ combinatorics ที่เป็นสนิมและพยายามหาทาง นี่คือสิ่งที่ฉันมีจนถึงตอนนี้: จากเว็บไซต์สั่งซื้อออนไลน์ฉันได้รับตัวเลือก เปลือกโลก (4 ประเภทเลือก 1) ขนาด (4 ประเภทให้เลือก 1) เปลือกโลกบางอันถูก จำกัด ไว้ที่ขนาดที่แน่นอน - ไม่ใช่การบัญชีสำหรับเรื่องนั้น แต่ต้องการที่จะ ชีส (5 ชนิดเลือก 1) ซอส (4 แบบเลือก 1) ระดับซอส (3 ประเภทเลือก 1) เนื้อสัตว์ (9 ชนิดเลือกได้ถึง 9) ไม่ใช่เนื้อสัตว์ (15 ชนิดเลือกได้ถึง 15) ดังนั้นฉันคิดว่านี่เป็นปัญหาการรวมกัน (คำสั่งไม่สำคัญ) และไม่ใช่ปัญหาที่เลือก n, อนุญาตให้ว่างได้เลยยกเว้นเปลือกและเปลือก, ขนาด, ชีส, ซอสและซอสระดับจะเลือกเพียงอันเดียว …

1
สตริงที่มีขนาดใหญ่พอทุกครั้งมีการทำซ้ำหรือไม่?
ให้เป็นชุดของอักขระที่มีขนาดคงที่ Letเป็นสตริงบางกว่า\เราบอกว่าว่างย่อยของเป็นซ้ำถ้าสตริงบาง\ΣΣ\Sigmaαα\alphaΣΣ\Sigmaββ\betaαα\alphaβ=γγβ=γγ\beta = \gamma \gammaγγ\gamma ตอนนี้คำถามของฉันคือว่าต่อไปนี้: สำหรับทุก ๆมีบางเช่นนั้นสำหรับทุกสายมากกว่าของความยาวอย่างน้อย ,มีการทำซ้ำอย่างน้อยหนึ่งครั้งΣΣ\Sigman ∈ Nn∈ยังไม่มีข้อความn \in \mathbb{N}αα\alphaΣΣ\Sigmannnαα\alpha ฉันได้ตรวจสอบสิ่งนี้ผ่านตัวอักษรไบนารีและมันค่อนข้างง่ายสำหรับกรณีนี้ แต่ตัวอักษรขนาด 3 นั้นค่อนข้างยากที่จะตรวจสอบอยู่แล้วและฉันต้องการหลักฐานสำหรับไวยากรณ์ขนาดใหญ่โดยพลการ หากการคาดคะเนดังกล่าวข้างต้นเป็นความจริงแล้วฉันสามารถ (เกือบ) เอาความต้องการสำหรับการแทรกสตริงที่ว่างเปล่าในคำถามอื่น ๆ ของฉัน

1
ความซับซ้อนของการหาค่าสัมประสิทธิ์ทวินามซึ่งเท่ากับจำนวน
สมมติว่าคุณได้รับตัวเลข (โดยใช้บิตในการเข้ารหัสไบนารี่)O ( บันทึกm )mmmO(logm)O(log⁡m)O(\log m) คุณจะค้นหาได้เร็วแค่ไหน (หรือหาว่าไม่มีอยู่จริง) n,k∈N,1&lt;k≤n2:(nk)=mn,k∈N,1&lt;k≤n2:(nk)=mn,k\in \mathbb N, 1<k\leq\frac{n}{2}:{n \choose k}=m ? ยกตัวอย่างเช่นการป้อนข้อมูลให้m=8436285m=8436285m=8436285หนึ่งการส่งออกเดือนพฤษภาคมn=27,k=10n=27,k=10n=27, k=10k อัลกอริทึมไร้เดียงสาสำหรับปัญหาจะข้ามค่าที่เป็นไปได้ทั้งหมดสำหรับnnnและค้นหาค่าkkkที่ตรงกับคุณสมบัติ สังเกตง่ายๆก็คือว่ามีไม่จำเป็นต้องตรวจสอบค่าของnnnมีขนาดเล็กกว่าlogmlog⁡m\log mหรือขนาดใหญ่กว่าO(m−−√)O(m)O(\sqrt m)เมตร) อย่างไรก็ตาม (แม้ว่าเราจะสามารถตรวจสอบเฉพาะค่าO (1) k ที่O(1)O(1)O(1)เป็นไปได้ต่อค่าn ) ซึ่งจะสิ้นสุดลงในอัลกอริทึมที่ไม่มีประสิทธิภาพซึ่งเป็นเลขชี้กำลังในขนาดอินพุตkkknnn อีกวิธีหนึ่งที่จะใช้ประเมินค่าk ที่เป็นไปได้kkk(เพียงพอที่จะตรวจสอบ{2,3,…,2logm}{2,3,…,2log⁡m}\{2,3,\ldots,2\log m\} ) และสำหรับการตรวจสอบค่าn ที่เป็นไปได้แต่ละnnnรายการ จากนั้นเราสามารถใช้: (nk)k&lt;(nk)&lt;nkk!(nk)k&lt;(nk)&lt;nkk!\left(\frac{n}{k}\right)^k<{n\choose k}< \frac{n^k}{k!} ดังนั้นสำหรับk ที่กำหนดkkkเราจะต้องตรวจสอบค่าnnnในช่วง[m⋅k!−−−−−√k,m−−√k⋅k][m⋅k!k,mk⋅k][\sqrt[\leftroot{-2}\uproot{2}k]{m\cdot k!},\sqrt[\leftroot{-2}\uproot{2}k]{m}\cdot{k}] , ทำเช่นนั้นโดยใช้การค้นหาแบบไบนารี่ (เมื่อkkkคงที่, (nk)(nk)n \choose kจะเพิ่มขึ้นแบบ monotonically ในnnn ), …

1
max-heaps ที่แตกต่างกันมีอยู่เท่าไหร่สำหรับรายการจำนวนเต็ม n ตัว?
max-heaps ที่แตกต่างกันมีอยู่เท่าไหร่สำหรับรายการจำนวนเต็มnnnตัว? ตัวอย่าง: รายการ [1, 2, 3, 4] heap สูงสุดสามารถเป็นได้ทั้ง4 3 2 1: 4 / \ 3 2 / 1 หรือ4 2 3 1: 4 / \ 2 3 / 1

2
กราฟ unipathic สามารถมีได้กี่ขอบ
กราฟ unipathic เป็นกราฟกำกับที่มีเส้นทางที่ง่ายที่สุดอย่างใดอย่างหนึ่งจากจุดสุดยอดหนึ่งไปยังจุดสุดยอดอื่น ๆ กราฟ Unipathic สามารถมีรอบ ตัวอย่างเช่นรายการที่เชื่อมโยงเป็นทวีคูณ (ไม่ใช่แบบวงกลม!) เป็นกราฟแบบ unipathic; ถ้ารายการมีองค์ประกอบกราฟมีn - 1รอบของความยาว 2 รวมเป็น2 ( n - 1 )nnnn - 1n−1n-12 ( n - 1 )2(n−1)2(n-1) จำนวนขอบสูงสุดในกราฟ unipathic ที่มีจุดยอดคืออะไร ขอบเขตแบบเชิงเส้นกำกับจะทำ (เช่นO ( n )หรือΘ ( n 2 ) )nnnO ( n )O(n)O(n)Θ ( n2)Θ(n2)\Theta(n^2) แรงบันดาลใจจากการค้นหาเส้นทางที่สั้นที่สุดในกราฟ unipathic ชั่งน้ำหนัก ; …

1
จำนวนรอบมิลโตเนียนในกราฟSierpiński
ฉันใหม่กับฟอรัมนี้และเป็นเพียงนักฟิสิกส์ที่ทำสิ่งนี้เพื่อให้สมองของเขาอยู่ในรูปร่างดังนั้นโปรดแสดงความสง่างามถ้าฉันไม่ได้ใช้ภาษาที่งดงามที่สุด นอกจากนี้โปรดแสดงความคิดเห็นหากคุณคิดว่าแท็กอื่น ๆ จะเหมาะสมกว่า ฉันกำลังพยายามที่จะแก้ปัญหานี้ซึ่งผมต้องคำนวณจำนวนมิลรอบในวันเพื่อ Sierpinski กราฟS_n(โปรดดูลิงค์ด้านบนสำหรับคำจำกัดความและรูปภาพของ Sierpinski-graphs)n S nC(n)C(n)C(n)nnnSnSnS_n ฉันได้พบแต่ฉันจะต้องมีบางสิ่งบางอย่าง messed ขึ้นเพราะวิธีการแก้ปัญหาของฉันไม่ตรงกับค่าที่กำหนด71328803586048 การถกเถียงของฉันประกอบด้วยความคิดพื้นฐานมากและฉันไม่สามารถหาข้อผิดพลาดได้ ความช่วยเหลือใด ๆ ที่ชื่นชมอย่างมาก แม้ว่ามันจะดูยาว แต่ความคิดก็ไม่สำคัญถ้าคุณดูกราฟในขณะที่ติดตามC ( 5 ) = 71328803586048C(n)C(n)C(n)C(5)=71328803586048C(5)=71328803586048C(5) = 71328803586048 (ก)ในกราฟให้เรียกมุมด้านนอก C จากนั้นฉันจะกำหนดปริมาณต่อไปนี้: A , B , CSnSnS_nA,B,CA,B,CA,B,C N(n):=N(n):=N(n) := จำนวนเส้นทางแฮมิลตันจากเพื่อCCAAACCC N¯(n):=N¯(n):=\bar{N}(n) := จำนวนเส้นทางจากเพื่อซึ่งแต่ละโหนดเยี่ยมชมครั้งเดียวยกเว้นBC BAAACCCBBB ฉันจะเรียกพา ธ ดังกล่าว - หรือ - พา ธ ประเภทต่อไปนี้ˉ …

4
การเกิดซ้ำและฟังก์ชันสร้างในอัลกอริทึม
Combinatorics มีบทบาทสำคัญในวิทยาการคอมพิวเตอร์ เราใช้วิธี combinatorial ในการวิเคราะห์และการออกแบบอัลกอริทึมบ่อยครั้ง ตัวอย่างเช่นวิธีหนึ่งสำหรับการค้นหาชุดkkk -vertex ในกราฟอาจตรวจสอบชุดย่อย(nk)(nk)\binom{n}{k}เป็นไปได้ทั้งหมด ในขณะที่ฟังก์ชั่นทวินามเติบโตขึ้นแบบทวีคูณถ้าkkkเป็นค่าคงที่ที่แน่นอนเราจะสิ้นสุดด้วยอัลกอริธึมเวลาพหุนามโดยการวิเคราะห์เชิงเส้นกำกับ บ่อยครั้งที่ปัญหาในชีวิตจริงต้องการกลไกการผสมผสานที่ซับซ้อนมากขึ้นซึ่งเราอาจนิยามในแง่ของการเกิดซ้ำ ตัวอย่างที่มีชื่อเสียงอย่างหนึ่งคือลำดับฟีโบนักชี (ไร้เดียงสา) ที่นิยามเป็น: f(n)=⎧⎩⎨10f(n−1)+f(n−2)if n=1if n=0otherwisef(n)={1if n=10if n=0f(n−1)+f(n−2)otherwisef(n) = \begin{cases} 1 & \text{if } n = 1 \\ 0 & \text{if } n = 0 \\ f(n-1) + f(n-2) & \text{otherwise} \end{cases} ขณะนี้การคำนวณมูลค่าของคำศัพท์ที่nnnเพิ่มขึ้นแบบทวีคูณโดยใช้การเกิดซ้ำนี้ แต่ด้วยการเขียนโปรแกรมแบบไดนามิกเราอาจคำนวณในเวลาเชิงเส้น ทีนี้ไม่ใช่การเกิดซ้ำทั้งหมดให้ตัวเองกับ DP (ฟังก์ชั่นแฟกทอเรียล) แต่มันเป็นคุณสมบัติที่สามารถเอาเปรียบได้เมื่อกำหนดบางอย่างว่าเป็นการเกิดซ้ำมากกว่าฟังก์ชั่นการสร้าง ฟังก์ชั่นการสร้างเป็นวิธีที่สง่างามในการทำให้เป็นรูปเป็นร่างสำหรับโครงสร้างที่กำหนด บางทีที่มีชื่อเสียงที่สุดคือฟังก์ชันการสร้างทวินามที่กำหนดเป็น: …

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