คำถามติดแท็ก recurrence-relation

คำจำกัดความของลำดับที่องค์ประกอบในภายหลังแสดงเป็นฟังก์ชันขององค์ประกอบก่อนหน้า

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} …

2
เหตุใด C ประเภทโมฆะจึงไม่คล้ายกับประเภทที่ว่าง / ด้านล่าง
Wikipedia ตลอดจนแหล่งข้อมูลอื่น ๆ ที่ฉันได้พบรายการvoidประเภทC เป็นหน่วยประเภทซึ่งตรงข้ามกับประเภทที่ว่างเปล่า ฉันพบว่ามันสับสนเพราะฉันคิดว่าvoidเหมาะกับนิยามของประเภทที่ว่าง / ล่าง ไม่มีค่านิยมใด ๆ อยู่voidเท่าที่ฉันจะบอกได้ ฟังก์ชั่นที่มีประเภทคืนค่าเป็นโมฆะระบุว่าฟังก์ชั่นจะไม่ส่งคืนสิ่งใดดังนั้นจึงสามารถทำงานได้เพียงผลข้างเคียงเท่านั้น ตัวชี้ชนิดvoid*เป็นชนิดย่อยของชนิดตัวชี้อื่นทั้งหมด นอกจากนี้การแปลงไปยังและจากvoid*ใน C นั้นเป็นนัย ผมไม่แน่ใจว่าถ้าจุดสุดท้ายมีบุญใด ๆ ที่เป็นข้อโต้แย้งสำหรับvoidการเป็นประเภทที่ว่างเปล่าเป็นมากหรือน้อยเป็นกรณีพิเศษที่มีความสัมพันธ์ไม่มากที่จะvoid*void ในทางกลับกันvoidตัวมันเองไม่ใช่ประเภทย่อยของประเภทอื่นทั้งหมดซึ่งเท่าที่ฉันสามารถบอกได้ว่าเป็นข้อกำหนดสำหรับประเภทที่จะเป็นประเภทด้านล่าง
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

1
พิสูจน์อย่างเข้มงวดเพื่อความถูกต้องของสมมติฐาน
ทฤษฎีบท Master เป็นเครื่องมือที่สวยงามสำหรับการแก้บางชนิดของการกลับเป็นซ้ำ อย่างไรก็ตามเรามักจะปัดส่วนที่สำคัญเมื่อนำไปใช้ ตัวอย่างเช่นระหว่างการวิเคราะห์ของการควบรวมกิจการเราไปอย่างมีความสุข T(n)=T(⌊n2⌋)+T(⌈n2⌉)+f(n)T(n)=T(⌊n2⌋)+T(⌈n2⌉)+f(n)\qquad T(n) = T\left(\left\lfloor \frac{n}{2} \right\rfloor\right) + T\left(\left\lceil \frac{n}{2} \right\rceil\right) + f(n) ถึง T′(n)=2T′(n2)+f(n)T′(n)=2T′(n2)+f(n)\qquad T'(n) = 2 T'\left(\frac{n}{2}\right) + f(n) พิจารณาเพียง k เรามั่นใจ ourselved ว่าขั้นตอนนี้เป็นที่ถูกต้อง - นั่นคือT ∈ Θ ( T ' ) - เพราะTพฤติกรรม "อย่าง" โดยทั่วไปเราถือว่าn = b kสำหรับbตัวส่วนร่วมn=2kn=2kn=2^kT∈Θ(T′)T∈Θ(T′)T \in \Theta(T')TTTn=bkn=bkn=b^kbbb มันเป็นเรื่องง่ายที่จะสร้างซ้ำซึ่งไม่อนุญาตให้มีความเรียบง่ายนี้โดยการใช้หินฉตัวอย่างเช่นการเกิดซ้ำข้างต้นสำหรับTfffTTT\,/ด้วยT′T′\,T' f(n)={1n,n=2k,elsef(n)={1,n=2kn,else\qquad f(n) …

2
การเปลี่ยนแปลงตัวแปรในความสัมพันธ์ที่เกิดซ้ำ
ขณะนี้ฉันกำลังเรียนรู้ด้วยตัวเอง Intro to Algorithms (CLRS) และมีวิธีการหนึ่งที่พวกเขาร่างในหนังสือเพื่อแก้ปัญหาความสัมพันธ์ที่เกิดซ้ำ วิธีการต่อไปนี้สามารถอธิบายได้ด้วยตัวอย่างนี้ สมมติว่าเรามีการเกิดซ้ำ T( n ) = 2 T( n--√) + บันทึกnT(n)=2T(n)+log⁡nT(n) = 2T(\sqrt n) + \log n เริ่มแรกพวกเขาทำการทดแทน m = lg (n) แล้วเสียบกลับเข้าไปที่การเกิดซ้ำและรับ: T( 2)ม.) = 2 T( 2)ม.2) + mT(2m)=2T(2m2)+mT(2^m) = 2T(2^{\frac{m}{2}}) + m เมื่อมาถึงจุดนี้ฉันเข้าใจอย่างสมบูรณ์ ขั้นตอนต่อไปนี้เป็นขั้นตอนที่ทำให้ฉันสับสน ตอนนี้พวกเขา "เปลี่ยนชื่อ" การเกิดซ้ำและปล่อยให้S ( m ) = …

1
การแก้หารและพิชิต reccurences หากการแบ่งอัตราส่วนขึ้นอยู่กับ
มีวิธีการทั่วไปในการแก้ปัญหาการเกิดซ้ำของแบบฟอร์มหรือไม่: T(n)=T(n−nc)+T(nc)+f(n)T(n)=T(n−nc)+T(nc)+f(n)T(n) = T(n-n^c) + T(n^c) + f(n) สำหรับหรือมากกว่าโดยทั่วไปc&lt;1c&lt;1c < 1 T(n)=T(n−g(n))+T(r(n))+f(n)T(n)=T(n−g(n))+T(r(n))+f(n)T(n) = T(n-g(n)) + T(r(n)) + f(n) ที่g(n),r(n)g(n),r(n)g(n),r(n)มีบางฟังก์ชั่นย่อยเชิงเส้นของnnnn ปรับปรุง : ฉันได้ผ่านการเชื่อมโยงที่ให้ไว้ด้านล่างและร่อนผ่านทั้งหมดนอกจากนี้ยังมีความสัมพันธ์ที่เกิดขึ้นอีกในบันทึกเจฟฟ์เอริก รูปแบบของการเกิดซ้ำนี้ไม่ได้กล่าวถึงทุกที่ วิธี Akkra-Bazi ใช้เฉพาะเมื่อการแบ่งเป็นเศษส่วน การอ้างอิงที่รุนแรงใด ๆ จะถูกตรวจสอบ

5
การเรียกซ้ำ Collatz ทำงานนานเท่าใด
ฉันมีรหัส Python ดังต่อไปนี้ def collatz(n): if n &lt;= 1: return True elif (n%2==0): return collatz(n/2) else: return collatz(3*n+1) เวลาทำงานของอัลกอริทึมนี้คืออะไร ลอง: ถ้าหมายถึงเวลาทำงานของฟังก์ชั่น จากนั้นฉันคิดว่าฉันมี T(n)T(n)T(n)collatz(n)⎧⎩⎨T(n)=1 for n≤1T(n)=T(n/2) for n evenT(n)=T(3n+1) for n odd{T(n)=1 for n≤1T(n)=T(n/2) for n evenT(n)=T(3n+1) for n odd\begin{cases} T(n)=1 \text{ for } n\le 1\\ T(n)=T(n/2) \text{ for } n\text{ …

1
พิสูจน์ความสามารถในการรองรับของการเกิดซ้ำครั้งที่ N
ดังต่อไปนี้จากคำถามก่อนหน้านี้ฉันเล่นกับสมมติฐานของ Riemannว่าเป็นเรื่องของคณิตศาสตร์เชิงนันทนาการ ในกระบวนการนี้ฉันได้เกิดขึ้นอีกครั้งที่น่าสนใจและฉันอยากรู้ชื่อของมันการลดลงของมัน เราสามารถกำหนดช่องว่างระหว่างหมายเลขเฉพาะแต่ละรายการเป็นการเกิดซ้ำของช่วงเวลาก่อนหน้าผู้สมัคร ตัวอย่างเช่นสำหรับฐานพี0= 2พี0=2p_0 = 2ของเราไพรม์ถัดไปจะเป็น: พี1= min { x &gt; p0∣ - cos( 2 π( x + 1 ) / p0) + 1 = 0 ) }พี1=นาที{x&gt;พี0|-cos⁡(2π(x+1)/พี0)+1=0)}\qquad \displaystyle p_1 = \min \{ x > p_0 \mid -\cos(2\pi(x+1)/p_0) + 1 = 0) \} หรือที่เราเห็นจากพล็อตนี้ออก : พี1= 3พี1=3p_1 = …

5
การแก้ไขความสัมพันธ์ที่เกิดซ้ำกับ√nเป็นพารามิเตอร์
พิจารณาการเกิดซ้ำ T(n)=n−−√⋅T(n−−√)+cnT(n)=n⋅T(n)+cn\qquad\displaystyle T(n) = \sqrt{n} \cdot T\bigl(\sqrt{n}\bigr) + c\,n สำหรับn&gt;2n&gt;2n \gt 2ที่มีอย่างต่อเนื่องในเชิงบวกบางcccและT(2)=1T(2)=1T(2) = 1 1 ฉันรู้ทฤษฎีต้นแบบสำหรับการแก้ไขการเกิดซ้ำ แต่ฉันไม่แน่ใจว่าเราจะแก้ปัญหาความสัมพันธ์นี้ได้อย่างไรโดยใช้ คุณเข้าใกล้พารามิเตอร์รากที่สองได้อย่างไร

3
การแก้สมการซ้ำที่มีการเรียกซ้ำสองครั้ง
ฉันพยายามหาถูกผูกไว้สำหรับสมการการเกิดซ้ำดังต่อไปนี้:ΘΘ\Theta T( n ) = 2 T( n / 2 ) + T( n / 3 ) + 2 n2+ 5 n + 42T(n)=2T(n/2)+T(n/3)+2n2+5n+42 T(n) = 2 T(n/2) + T(n/3) + 2n^2+ 5n + 42 ฉันเข้าใจว่าทฤษฎีบทของ Master ไม่เหมาะสมเนื่องจากจำนวนย่อยและส่วนย่อยที่แตกต่างกัน นอกจากนี้ยังมีต้นไม้ recursion ไม่ทำงานเนื่องจากไม่มีT( 1 )T(1)T(1)หรือมากกว่าT( 0 )T(0)T(0)(0)

3
อัลกอริทึมที่มีประสิทธิภาพในการคำนวณหมายเลขฟีโบนักชีที่
จำนวนที่ Fibonacci สามารถคำนวณในเวลาเชิงเส้นโดยใช้การเกิดซ้ำดังต่อไปนี้:nnn def fib(n): i, j = 1, 1 for k in {1...n-1}: i, j = j, i+j return i หมายเลขที่ Fibonacci สามารถคำนวณได้ด้วย[ φ n / √nnn. แต่นี้มีปัญหากับการปัดเศษปัญหาแม้มีขนาดค่อนข้างเล็กn อาจมีวิธีการรอบนี้แต่ฉันไม่อยากทำอย่างนั้น[ φn/ 5-√][φn/5]\left[\varphi^n / \sqrt{5}\right]nnn มีอัลกอริทึม(ลอการิทึมในค่าหรือดีกว่า) ที่มีประสิทธิภาพเพื่อคำนวณจำนวนฟีโบนักชีที่nที่ไม่พึ่งพาเลขคณิตจุดลอยตัวหรือไม่? สมมติว่าการดำเนินการจำนวนเต็ม ( + , - , × , / ) สามารถดำเนินการได้ในเวลาคงที่nnnnnn+++-−-××\times///

3
ทำความเข้าใจเกี่ยวกับอัลกอริทึมสำหรับปัญหาปั้มน้ำมัน
ในปัญหาปั้มน้ำมันเราได้รับเมืองnnnเมือง{0,…,n−1}{0,…,n−1}\{ 0, \ldots, n-1 \}และถนนระหว่างทั้งสอง ถนนแต่ละสายมีความยาวและแต่ละเมืองกำหนดราคาน้ำมัน ถนนหนึ่งหน่วยมีราคาน้ำมันหนึ่งหน่วย เป้าหมายของเราคือไปจากแหล่งต้นทางไปยังปลายทางด้วยวิธีที่ถูกที่สุด รถถังของเราถูก จำกัด ด้วยค่าบางอย่าง ฉันพยายามเข้าใจอัลกอริธึมดังนั้นฉันจึงจดขั้นตอนเพื่อคำนวณวิธีแก้ปัญหาด้วยตนเอง น่าเสียดายที่ฉันติดอยู่ - ในบางจุดไม่มีขอบที่ต้องพิจารณาฉันไม่รู้ว่าทำไม ตัวอย่าง: ถนน: 0 ----------- 1 ------------ 2 -------------- 3 (ไม่ได้ ต้องง่ายขนาดนั้นมันอาจเป็นกราฟใดก็ได้เช่นอาจมีถนนระหว่าง 0-&gt; 2, 0-&gt; 3, 1-&gt; 3 เป็นต้น) ที่มา: 0, ปลายทาง: 3, รถถัง: 10 หน่วย ราคาน้ำมัน: 0 : 10 หน่วย, 1 : 10 หน่วย, 2 …

2
ทฤษฎีบทหลักไม่สามารถใช้ได้?
รับสมการแบบเรียกซ้ำดังนี้ T(n)=2T(n2)+nlognT(n)=2T(n2)+nlog⁡n T(n) = 2T\left(\frac{n}{2}\right)+n\log nเราต้องการประยุกต์ใช้ทฤษฎีบทหลักและทราบว่า nlog2(2)=n.nlog2⁡(2)=n. n^{\log_2(2)} = n. ตอนนี้เราตรวจสอบสองกรณีแรกสำหรับนั่นคือว่าε&gt;0ε&gt;0\varepsilon > 0 nlogn∈O(n1−ε)nlog⁡n∈O(n1−ε)n\log n \in O(n^{1-\varepsilon})หรือ nlogn∈Θ(n)nlog⁡n∈Θ(n)n\log n \in \Theta(n)(N) ทั้งสองกรณีไม่พอใจ ดังนั้นเราต้องตรวจสอบกรณีที่สามนั่นก็คือ nlogn∈Ω(n1+ε)nlog⁡n∈Ω(n1+ε)n\log n \in \Omega(n^{1+\varepsilon}) ) ฉันคิดว่าเงื่อนไขที่สามไม่เป็นที่พอใจเช่นกัน แต่ทำไม และอะไรจะเป็นคำอธิบายที่ดีสำหรับสาเหตุที่ไม่สามารถนำทฤษฎีบทต้นแบบมาใช้ได้ในกรณีนี้

1
การประมาณเชิงเชิงความสัมพันธ์ของการเกิดซ้ำ (Akra-Bazzi ดูเหมือนจะไม่นำไปใช้)
สมมติว่าอัลกอริทึมมีความสัมพันธ์ที่เกิดขึ้นประจำรันไทม์: T(n)={g(n)+T(n−1)+T(⌊δn⌋)f(n):n≥n0:n&lt;n0T(n)={g(n)+T(n−1)+T(⌊δn⌋):n≥n0f(n):n&lt;n0 T(n) = \left\{ \begin{array}{lr} g(n)+T(n-1) + T(\lfloor\delta n\rfloor ) & : n \ge n_0\\ f(n) & : n < n_0 \end{array} \right. สำหรับบางคนคง&lt;1 สมมติว่าเป็นพหุนามในอาจเป็นกำลังสอง ส่วนใหญ่มีแนวโน้มจะชี้แจงในn0&lt;δ&lt;10&lt;δ&lt;10 < \delta < 1gggnnnfffnnn เราจะวิเคราะห์ runtime ได้ยังไง(ยอดเยี่ยม) ทฤษฎีบทหลักและวิธี Akra-Bazzi ทั่วไปดูเหมือนจะไม่ได้นำมาใช้ΘΘ\Theta

3
ข้อผิดพลาดในการใช้สัญลักษณ์ asymptotic
ฉันพยายามที่จะเข้าใจสิ่งที่ผิดกับหลักฐานต่อไปนี้ของการเกิดซ้ำต่อไปนี้ T(n)≤2(c⌊nT(n)=2T(⌊n2⌋)+nT(n)=2T(⌊n2⌋)+n T(n) = 2\,T\!\left(\left\lfloor\frac{n}{2}\right\rfloor\right)+n T(n)≤2(c⌊n2⌋)+n≤cn+n=n(c+1)=O(n)T(n)≤2(c⌊n2⌋)+n≤cn+n=n(c+1)=O(n) T(n) \leq 2\left(c\left\lfloor\frac{n}{2}\right\rfloor\right)+n \leq cn+n = n(c+1) =O(n) เอกสารบอกว่ามันผิดเพราะสมมติฐานอุปนัยที่ ฉันหายไปไหน?T(n)≤cnT(n)≤cn T(n) \leq cn

1
การแก้ไขความสัมพันธ์ที่เกิดซ้ำกับการโทรซ้ำสองครั้ง
ฉันกำลังศึกษารันไทม์กรณีที่เลวร้ายที่สุดของ quicksort ภายใต้เงื่อนไขที่ว่าจะไม่ทำมากพาร์ทิชันไม่สมดุลสำหรับคำจำกัดความที่แตกต่างของมาก ในการทำเช่นนี้ฉันถามตัวเองว่ารันไทม์ T(n,พี)T(n,p)T(n, p) จะเป็นในกรณีที่ quicksort มักจะเกิดขึ้นกับพาร์ทิชันในบางส่วน 0&lt;พี≤120&lt;p≤120 < p \leq {1\over 2} ดังนั้น ⌊พี(n-1)⌋⌊p(n−1)⌋\lfloor{p(n-1)}\rfloor องค์ประกอบอยู่ในพาร์ทิชันด้านซ้ายและ ⌈(1-พี)(n-1)⌉⌈(1−p)(n−1)⌉\lceil(1 - p)(n - 1)\rceil อยู่ในพาร์ทิชันที่เหมาะสม (ออกจาก 111 องค์ประกอบ pivot ที่อยู่ตรงกลาง) ไม่ยากที่จะเห็นว่า T(n,พี)T(n,p)T(n, p) ให้ขอบเขตบนสำหรับกรณีที่แย่ที่สุดที่ พีpp เป็นพาร์ติชันที่ได้รับอนุญาตไม่สมดุลมากที่สุดเช่นเดียวกับพาร์ทิชันที่มีเศษส่วน &gt;พี&gt;p> p จะมีความสมดุลมากขึ้นและมีรันไทม์ขนาดเล็กลงและเศษส่วนใด ๆ &lt;พี&lt;p<p ไม่อนุญาต เห็นได้ชัดว่า T(n,12)T(n,12)T(n, {1 \over 2}) เป็นกรณีที่ดีที่สุดและ T(n,0)T(n,0)T(n, 0)เป็นกรณีที่แย่ที่สุดของ quicksort …

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