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

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

3
จำนวนคำในภาษาปกติ
ตามวิกิพีเดียสำหรับภาษาปกติLLLมีค่าคงที่λ1,…,λkλ1,…,λk\lambda_1,\ldots,\lambda_kและพหุนามp1(x),…,pk(x)p1(x),…,pk(x)p_1(x),\ldots,p_k(x)เช่นนั้นสำหรับทุก ๆnnnจำนวนsL(n)sL(n)s_L(n)ของคำที่มีความยาวnnnในLLLเป็นไปตามสมการ ksL(n)=p1(n)λn1+⋯+pk(n)λnksL(n)=p1(n)λ1n+⋯+pk(n)λkn\qquad \displaystyle s_L(n)=p_1(n)\lambda_1^n+\dots+p_k(n)\lambda_k^n ภาษาเป็นภาษาปกติ ( ( 00 ) ∗ตรงกัน) s L ( n ) = 1 iff n เป็นคู่และs L ( n ) = 0 เป็นอย่างอื่นL={02n∣n∈N}L={02n∣n∈N}L =\{ 0^{2n} \mid n \in\mathbb{N} \}(00)∗(00)∗(00)^*sL(n)=1sL(n)=1s_L(n) = 1sL(n)=0sL(n)=0s_L(n) = 0 อย่างไรก็ตามฉันไม่สามารถหาและp i (ที่ต้องมีอยู่ข้างต้น) ในฐานะที่เป็นs L ( n )จะต้องมีการหาอนุพันธ์และไม่คงที่มันอย่างใดต้องทำตัวเหมือนคลื่นและผมก็ไม่สามารถดูวิธีการที่คุณอาจจะสามารถทำกับพหุนามและฟังก์ชั่นโดยไม่ต้องชี้แจงสิ้นสุดกับจำนวนอนันต์ของ summands เช่น ในการขยายตัวของเทย์เลอร์ มีใครสอนฉันได้ไหมλiλi\lambda_ipipip_isL(n)sL(n)s_L(n)

1
การเข้ารหัสปริศนาซูโดกุที่มีประสิทธิภาพ
การระบุกริด 9x9 ใด ๆ จำเป็นต้องให้ตำแหน่งและค่าของแต่ละช่อง การเข้ารหัสnaïveสำหรับสิ่งนี้อาจให้ 81 (x, y, ค่า) triplets ต้องใช้ 4 บิตสำหรับแต่ละ x, y และค่า (1-9 = 9 ค่า = 4 บิต) รวมเป็น 81x4x3 = 972 บิต ด้วยการกำหนดหมายเลขแต่ละช่องสี่เหลี่ยมเราสามารถลดข้อมูลตำแหน่งเป็น 7 บิตปล่อยบิตสำหรับแต่ละตารางและรวม 891 บิต โดยการระบุคำสั่งที่กำหนดไว้ล่วงหน้าหนึ่งสามารถลดลงอย่างมากนี้เป็นเพียง 4 บิตสำหรับแต่ละค่ารวม 324 บิต อย่างไรก็ตามซูโดกุอาจมีตัวเลขที่ขาดหายไป นี่เป็นโอกาสที่จะลดจำนวนตัวเลขที่ต้องระบุ แต่อาจต้องใช้บิตเพิ่มเติมเพื่อระบุตำแหน่ง การใช้การเข้ารหัส 11 บิตของเรา (ตำแหน่งค่า) เราสามารถระบุตัวต่อด้วยเบาะแสกับ11nnn Nปริศนา)11n11n11nบิตเช่นตัวต่อน้อยที่สุด (17) ตัวต้องใช้ …

3
การฝึกเขียนโปรแกรมแบบไดนามิกบนสตริงการตัด
ฉันทำงานเกี่ยวกับปัญหาต่อไปนี้จากหนังสือเล่มนี้ ภาษาการประมวลผลสตริงที่แน่นอนมีการดำเนินการดั้งเดิมซึ่งแยกสตริงออกเป็นสองชิ้น เนื่องจากการดำเนินการนี้เกี่ยวข้องกับการคัดลอกสตริงดั้งเดิมจึงใช้เวลา n หน่วยสำหรับสตริงที่มีความยาว n โดยไม่คำนึงถึงตำแหน่งของการตัด สมมติว่าตอนนี้คุณต้องการแบ่งสตริงออกเป็นหลาย ๆ ส่วน ลำดับการหยุดพักอาจส่งผลต่อเวลาการทำงานทั้งหมด ตัวอย่างเช่นหากคุณต้องการตัดสตริงอักขระ 20 ตัวที่ตำแหน่ง333และ101010ดังนั้นการตัดครั้งแรกที่ตำแหน่ง333จะมีค่าใช้จ่ายรวม20+17=3720+17=3720 + 17 = 37ขณะทำตำแหน่ง 10 ก่อนจะมีต้นทุนที่ดีกว่า20+10=3020+10=3020 + 10 = 30. ฉันต้องการอัลกอริธึมการเขียนโปรแกรมแบบไดนามิกที่ให้การตัดค้นหาค่าใช้จ่ายขั้นต่ำของการตัดสตริงเป็นm + 1ชิ้นmม.mm+1ม.+1m +1

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

1
การสร้างเมทริกซ์ไบนารีไม่เท่ากัน
ฉันกำลังพยายามสร้างเมทริกซ์8 × ไม่เท่ากันทั้งหมด(หรือn × nถ้าคุณต้องการ) ด้วยองค์ประกอบ 0 หรือ 1 การดำเนินการที่ให้เมทริกซ์ที่เท่ากันคือการแลกเปลี่ยนพร้อมกันของแถว i และ j และคอลัมน์ i และ j เช่น. สำหรับ1 ↔ 2 ( 0 0 0 0 1 1 1 0 0 ) ∼ ( 1 0 1 0 0 0 0 0 1 0 )8 × 88×88\times 8n × nn×nn\times …

1
เรื่อง“ ความสูงเฉลี่ยของต้นไม้เครื่องบินที่ปลูก” โดย Knuth, de Bruijn และ Rice (1972)
ฉันพยายามหากระดาษคลาสสิกในชื่อโดยใช้วิธีการเบื้องต้นเท่านั้น (ไม่มีฟังก์ชั่นการสร้างไม่มีการวิเคราะห์ที่ซับซ้อนไม่มีการวิเคราะห์ฟูริเยร์) แม้ว่าจะมีความแม่นยำน้อยกว่ามาก ในระยะสั้นผม "เท่านั้น" ต้องการที่จะพิสูจน์ว่าค่าเฉลี่ยความสูงชั่วโมงnชั่วโมงnh_nของต้นไม้ที่มีโหนด (นั่นคือจำนวนสูงสุดของโหนดจากรากใบ) ตอบสนองความn}nnnชั่วโมงn∼ πn---√ชั่วโมงn~πnh_n \sim \sqrt{\pi n} เค้าร่างมีดังนี้ ให้เป็นจำนวนต้นไม้ที่มีความสูงน้อยกว่าหรือเท่ากับ (โดยมีแบบแผนสำหรับ ) และB_ {nh}จำนวนต้นไม้ของโหนดnที่มีความสูงมากกว่าหรือเท่ากับh + 1 (นั่นคือB_ {nh} = A_ {nn} - A_ {nh} ) จากนั้นh_n = S_n / A_ {nn}โดยที่S_nคือผลรวมแน่นอน S_n = \ sum_ {h \ geqslant 1} h (A_ {nh} - A_ {n, h-1}) …

6
การหาค่า XOR สูงสุดของตัวเลขสองตัวในช่วงเวลาหนึ่ง: เราจะทำได้ดีกว่าสมการกำลังสองหรือไม่?
สมมติว่าเรากำลังได้รับสองหมายเลขและและที่เราต้องการที่จะหาสำหรับL \ le i, \, J \ le Rlllrrrmax(i⊕j)max(i⊕j)\max{(i\oplus j)}l≤i,j≤rl≤i,j≤rl\le i,\,j\le r อัลกอริทึมnaïveเพียงตรวจสอบคู่ที่เป็นไปได้ทั้งหมด เช่นในทับทิมเรามี: def max_xor(l, r) max = 0 (l..r).each do |i| (i..r).each do |j| if (i ^ j > max) max = i ^ j end end end max end ฉันรู้สึกว่าเราสามารถทำได้ดีกว่าสมการกำลังสอง มีอัลกอริทึมที่ดีกว่าสำหรับปัญหานี้หรือไม่?

1
จำนวนภาษาปกติที่แตกต่างกัน
เมื่อได้รับตัวอักษรΣ={a,b}Σ={a,b}\Sigma = \{ a,b \}มีภาษาปกติที่แตกต่างกันจำนวนกี่ตัวที่สามารถยอมรับได้โดยnnn state non-deterministic เป็นตัวอย่างให้เราพิจารณาn=3n=3n=3 3 แล้วเรามี2182182^{18}การกำหนดค่าการเปลี่ยนแปลงที่แตกต่างกันและ23232^3ที่แตกต่างกันที่เริ่มต้นและสิ้นสุดการกำหนดค่าของรัฐเพื่อให้เราได้ผูกพันบนของ2242242^{24}ภาษาที่แตกต่างกัน อย่างไรก็ตามสิ่งเหล่านี้จะเทียบเท่าและเนื่องจากการทดสอบสำหรับ PSPACE-Complete จึงอาจไม่สามารถทดสอบแต่ละการตั้งค่าได้ มีวิธีการอื่นหรือข้อโต้แย้งแบบ combinatorial ซึ่ง จำกัด จำนวนภาษาที่แตกต่างกันซึ่งได้รับการยอมรับจากทรัพยากรที่ให้ไว้หรือไม่?

2
วิธีการสร้างกราฟตัวขยายปกติ
ฉันจำเป็นต้องสร้างกราฟตัวขยาย d-regular สำหรับ d คงที่ขนาดเล็ก (เช่น 3 หรือ 4) ของจุดยอด n วิธีที่ง่ายที่สุดในการทำสิ่งนี้ในทางปฏิบัติคืออะไร? สร้างกราฟสุ่ม d-regular ซึ่งพิสูจน์แล้วว่าเป็นตัวขยายหรือไม่ ฉันยังอ่านเกี่ยวกับการก่อสร้าง Margulis และกราฟ Ramanujan ที่เป็นส่วนขยายและการก่อสร้างโดยใช้ผลิตภัณฑ์ซิกแซก วิกิพีเดียให้ภาพรวมที่ดี แต่สั้นมาก: http://en.wikipedia.org/wiki/Expander_graph#cite_note-10 แต่ฉันเลือกวิธีไหนในทางปฏิบัติ สำหรับฉันวิธีการเหล่านี้ดูเหมือนจะซับซ้อนมากในการใช้งานและโดยเฉพาะอย่างยิ่งในการทำความเข้าใจและอาจจะค่อนข้างเฉพาะเจาะจง ไม่มีวิธีที่ง่ายกว่านี้อาจเป็นไปตามวิธีเรียงสับเปลี่ยนหรือวิธีการสร้างลำดับของกราฟตัวขยาย d-regular มันอาจจะง่ายกว่าในการสร้างกราฟตัวขยาย b-dart ปกติ? ฉันยังมีคำถามอื่น: สิ่งที่เกี่ยวกับครอบครัวของตัวขยาย d-regular ที่ไม่ดี? แนวคิดเช่นนี้สมเหตุสมผลหรือไม่? หนึ่งสามารถสร้างครอบครัวของกราฟปกติ d- (ที่มีการเชื่อมต่อแน่นอน) ที่ไม่ดีเท่าที่จะทำได้ในแง่ของการขยาย? ขอบคุณล่วงหน้า.

2
พิสูจน์ว่าทุกเส้นทางที่ยาวที่สุดมีจุดยอดอย่างน้อยหนึ่งจุดร่วมกัน
หากกราฟเชื่อมต่อกันและไม่มีเส้นทางที่มีความยาวมากกว่าแสดงว่าทุกเส้นทางในGของความยาวkมีจุดยอดอย่างน้อยหนึ่งจุดร่วมกัน GGGkkkGGGkkk ฉันคิดว่าจุดสุดยอดทั่วไปควรอยู่กลางเส้นทางทั้งสอง เพราะถ้ากรณีนี้ไม่ได้แล้วเราจะได้มีเส้นทางของความยาว>k>k>k k ฉันถูกไหม?

2
พิสูจน์ต้นไม้ไบนารีได้มากที่สุด
ฉันพยายามพิสูจน์ว่าต้นไม้ไบนารีที่มีnnn nodes มีไม่เกิน⌈n2⌉⌈n2⌉\left\lceil \frac{n}{2} \right\rceilใบ ฉันจะทำสิ่งนี้ด้วยการเหนี่ยวนำได้อย่างไร สำหรับคนที่ได้รับการต่อไปนี้ในคำถามเดิมเกี่ยวกับกองจะได้รับการย้ายที่นี่

2
อัลกอริทึมที่มีประสิทธิภาพในการสร้างการกระจายสองแบบเรียงสับเปลี่ยนของชุดมัลติเซ็ตที่สุ่ม
พื้นหลัง \newcommand\ms[1]{\mathsf #1}\def\msD{\ms D}\def\msS{\ms S}\def\mfS{\mathfrak S}\newcommand\mfm[1]{#1}\def\po{\color{#f63}{\mfm{1}}}\def\pc{\color{#6c0}{\mfm{c}}}\def\pt{\color{#08d}{\mfm{2}}}\def\pth{\color{#6c0}{\mfm{3}}}\def\pf{4}\def\pv{\color{#999}5}\def\gr{\color{#ccc}}\let\ss\grสมมติว่าฉันมีสองสำหรับกระบวนการที่เหมือนกันของnnnหินอ่อน แต่ละหินอ่อนสามารถเป็นหนึ่งในcccสีที่c≤nc≤nc≤nc≤nให้ninin_iแทนจำนวนหินอ่อนสีiiiในแต่ละชุด ให้SS\msSเป็นมัลติเซ็ต{1,…,1n1,2,…,2n2,…,1c,…,cnc}{1,…,1⏞n1,2,…,2⏞n2,…,1c,…,c⏞nc}\small\{\overbrace{\po,…,\po}^{n_1},\;\overbrace{\pt,…,\pt}^{n_2},\;…,\;\overbrace{\vphantom 1\pc,…,\pc}^{n_c}\}แทนหนึ่งชุด ในการเป็นตัวแทนความถี่ , SS\msSนอกจากนี้ยังสามารถเขียนเป็น(1n12n2…cnc)(1n12n2…cnc)(\po^{n_1} \;\pt^{n_2}\; … \;\pc^{n_c}){n_c}) จำนวนการเรียงสับเปลี่ยนที่แตกต่างกันของSS\msSนั้นมอบโดยMultinomial : |SS|=(nn1,n2,…,nc)=n!n1!n2!⋯nc!=n!∏i=1c1ni!.|SS|=(nn1,n2,…,nc)=n!n1!n2!⋯nc!=n!∏i=1c1ni!.\left|\mfS_{\msS}\right|=\binom{n}{n_1,n_2,\dots,n_c}=\frac{n!}{n_1!\,n_2!\cdots n_c!}=n! \prod_{i=1}^c \frac1{n_i!}. คำถาม มีอัลกอริทึมที่มีประสิทธิภาพในการสร้างการกระจายสองแบบเรียงสับเปลี่ยนPPPและQQQของSS\msSที่สุ่มหรือไม่ (การกระจายควรเป็นแบบเดียวกัน) เปลี่ยนแปลงPPPคือกระจายถ้าองค์ประกอบที่แตกต่างกันทุกiiiของPPPกรณีของiiiมีระยะห่างออกไปประมาณเท่า ๆ กันในPPPP ตัวอย่างเช่นสมมติว่าS=(1424)={1,1,1,1,2,2,2,2}S=(1424)={1,1,1,1,2,2,2,2}\msS=(\po^4\;\pt^4)=\{\po,\po,\po,\po,\pt,\pt,\pt,\pt\}\} {1,1,1,2,2,2,2,1}{1,1,1,2,2,2,2,1}\{\po, \po, \po, \pt, \pt, \pt, \pt, \po\}ไม่กระจาย {1,2,1,2,1,2,1,2}{1,2,1,2,1,2,1,2}\{\po, \pt, \po, \pt, \po, \pt, \po, \pt\}กระจาย อย่างจริงจังมากขึ้น: หากมีเพียงหนึ่งตัวอย่างของไป“พื้นที่ออก” ในเพื่อให้ 0ni=1ni=1n_i=1iiiPPPΔ(i)=0Δ(i)=0\Delta(i)=0 มิฉะนั้นให้เป็นระยะห่างระหว่างอินสแตนซ์ และอินสแตนซ์ …

2
จำนวนพา ธ การค้นหาที่เป็นไปได้เมื่อค้นหาใน BST
ฉันมีคำถามต่อไปนี้ แต่ไม่มีคำตอบสำหรับเรื่องนี้ ฉันจะขอบคุณถ้าวิธีการของฉันถูกต้อง: Q. เมื่อค้นหาค่าคีย์ 60 ในแผนผังการค้นหาแบบไบนารีโหนดที่มีค่าคีย์ 10, 20, 40, 50, 70, 80, 90 จะถูกสำรวจไม่จำเป็นต้องเรียงตามลำดับที่กำหนด คำสั่งซื้อที่แตกต่างกันมีความเป็นไปได้เท่าใดที่ค่าคีย์เหล่านี้สามารถเกิดขึ้นได้บนเส้นทางการค้นหาจากโหนดรูทที่มีค่า 60 (A) 35 (B) 64 (C) 128 (D) 5040 จากคำถามฉันเข้าใจว่าโหนดทั้งหมดที่ให้ไว้จะต้องรวมอยู่ในการสำรวจเส้นทางและท้ายที่สุดเราต้องไปถึงที่สำคัญเช่น 60 ตัวอย่างเช่นการรวมกันอย่างใดอย่างหนึ่งจะเป็น: 10, 20, 40, 50, 90, 80, 70, 60 เนื่องจากเราต้องข้ามโหนดทั้งหมดที่ระบุข้างต้นเราต้องเริ่มต้นด้วย 10 หรือ 90 ถ้าเราเริ่มต้นด้วย 20 เราจะไม่ถึง 10 (ตั้งแต่ 60> 20 และเราจะทรีย่อยทรีขวาของ 20) ในทำนองเดียวกันเราไม่สามารถเริ่มต้นด้วย …

1
เติมถังขยะด้วยลูกคู่
ถังถูกเรียกว่าเต็มถ้ามันมีอย่างน้อยkkkลูก เป้าหมายของเราคือสร้างถังขยะให้ได้มากที่สุด ในสถานการณ์ที่ง่ายที่สุดเราได้รับบอลnnnลูกและอาจจัดการให้พวกเขาโดยพลการ ในกรณีนั้นเห็นได้ชัดว่าสิ่งที่ดีที่สุดที่เราทำได้คือเลือก⌊n/k⌋⌊n/k⌋\lfloor n/k \rfloor bins โดยพลการและวางลูกไว้kkkในแต่ละอัน ฉันสนใจในสถานการณ์ต่อไปนี้: เราได้รับลูกบอลnnn คู่ เราต้องใส่สองลูกของแต่ละคู่ในสองถังขยะที่แตกต่างกัน จากนั้นฝ่ายตรงข้ามจะมาและนำลูกบอลหนึ่งลูกออกจากแต่ละคู่ เราจะทำอย่างไรเพื่อให้มีจำนวนสูงสุดของถังขยะเต็มหลังจากการกำจัด? กลยุทธ์ง่ายๆคือ: เลือก⌊n/(2k−1)⌋⌊n/(2k−1)⌋\lfloor n/(2k-1) \rfloorถังขยะ เติม bin คู่แต่ละคู่ด้วย2k−12k−12k-1 ball-pair (แต่ละ bin มี2k−12k−12k-1 ball, หนึ่งลูกจากแต่ละคู่) จากนั้นไม่ว่าศัตรูของเราจะลบสิ่งใดเราก็มีถังขยะเต็มคู่อย่างน้อยหนึ่งคู่ เรามีกลยุทธ์ที่ทำให้ได้ถังขยะเต็มจำนวนมากกว่า (มากกว่า⌊n/(2k−1)⌋⌊n/(2k−1)⌋\lfloor n/(2k-1) \rfloor ) หรือไม่?

3
เป็นตัวแทนไพ่โป๊กเกอร์ 5 ใบ
สำรับไพ่ 52 ใบไพ่ 1 ใบจากไพ่ 52 ใบ (ไม่สามารถซ้ำกันได้) จำนวนบิตน้อยที่สุดในการแสดงไพ่ 5 ใบและอย่างไร มือไม่ได้เรียงตามลำดับ (KQ = QK) 64329 = 96432 ใช่สามารถใช้ 52 บิต ที่สามารถแสดงไพ่ในมือจำนวนเท่าใดก็ได้ ให้ไพ่หนึ่งใบมี 5 ใบมีวิธีแสดงว่ามีน้อยกว่า 52 บิต บัตรเดียวสามารถแสดงด้วย 6 บิต = 64 ดังนั้นสามารถใช้ 6 บิต * 5 ใบ = 30 บิต แต่นั่นจะขึ้นอยู่กับการสั่งซื้อ ฉันสามารถเรียงลำดับและสิ่งนี้จะทำงาน หากไม่ได้ผลโปรดแจ้งให้เราทราบ มีวิธีรับคีย์เป็น 32 บิตหรือต่ำกว่าและไม่ต้องเรียง 5 tuple การ์ด …

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