วิทยาศาสตร์คอมพิวเตอร์

ถาม - ตอบสำหรับนักเรียนนักวิจัยและผู้ปฏิบัติงานด้านวิทยาการคอมพิวเตอร์

1
วงจร Depth-2 ที่มีหรือหรือและประตู MOD ไม่เป็นสากล?
เป็นที่ทราบกันดีว่าฟังก์ชันบูลีนทุกฟังก์ชันสามารถรับรู้ได้โดยใช้วงจรบูลีนที่มีความลึก 2 (เหนือตัวแปร, การปฏิเสธและค่าคงที่) มีและประตูในระดับแรกและหนึ่งหรือประตูเดียวในระดับบน; นี้เป็นเพียงตัวแทน DNFของฉf:{0,1}n→{0,1}f:{0,1}n→{0,1}f:\{0,1\}^n\to \{0,1\}fff เกทชนิดอื่นที่เป็นที่สนใจอย่างมากในความซับซ้อนของวงจรคือเกตคำจำกัดความปกติมีดังต่อไปนี้:MODmMODmMOD_m MODm(x1,…,xk)={10 if ∑xi≡0modm if ∑xi≢0modm MODm(x1,…,xk)={1 if ∑xi≡0modm 0 if ∑xi≢0modm \mathrm{MOD}_m(x_1,\dots,x_k)=\cases{ 1 & if \(\sum x_i \equiv 0 \mod m\) \\ 0 & if \(\sum x_i \not\equiv 0 \mod m\) \\ } บางครั้งประตูเหล่านี้มีพลังที่น่าประหลาดใจ ตัวอย่างเช่นฟังก์ชันบูลีนใด ๆ ที่สามารถแสดงโดยวงจรความลึก -2 ที่มีเพียงMOD6MOD6\mathrm{MOD}_6ประตู (นี่คือคติชนวิทยา แต่ชาวบ้านก็คือว่าวงจรมีเพียงหนึ่งเดียวหรือประตูที่ด้านบนและMODmMODm\mathrm{MOD}_mประตูในชั้นล่าง …

1
พิสูจน์ได้ว่า
ฉันต้องการใช้ความช่วยเหลือของคุณกับปัญหาต่อไปนี้: L={⟨M⟩∣L(M) is context-free}L={⟨M⟩∣L(M) is context-free}L=\{⟨M⟩ ∣ L(M) \mbox{ is context-free} \}. แสดงว่าL∉RE∪CoREL∉RE∪CoREL \notin RE \cup CoRE. ฉันรู้ว่าต้องพิสูจน์ L∉REL∉REL\notin REมันก็เพียงพอที่จะหาภาษา L′L′L' ดังนั้น L′∉REL′∉REL'\notin RE และแสดงว่ามีการลดจาก L′L′L' ถึง LLL (L′≤ML)(L′≤ML)(L'\leq _M L). ฉันเริ่มนึกถึงภาษาที่ฉันรู้แล้วว่าพวกเขาไม่ได้อยู่ข้างใน REREREและฉันรู้ว่า Halt∗={⟨M⟩∣M halts for every input}∉REHalt∗={⟨M⟩∣M halts for every input}∉REHalt^* =\{⟨M⟩ ∣ M\mbox{ halts for every input} \} …

3
หากไม่มีบริบทและเป็นปกติดังนั้นจะไม่มีบริบทหรือไม่
ฉันกำลังติดการแก้แบบฝึกหัดถัดไป: ยืนยันว่าหากคือบริบทฟรีและเป็นปกติแล้ว (เช่นความฉลาดทางขวา ) ไม่มีบริบทLLLRRRL/R={w∣∃x∈Rs.twx∈L}L/R={w∣∃x∈Rs.twx∈L}L / R = \{ w \mid \exists x \in R \;\text{s.t}\; wx \in L\} ฉันรู้ว่ามีควรมีอยู่ PDA ที่ยอมรับและ DFA ที่ยอมรับRตอนนี้ฉันกำลังพยายามรวมออโตมาตะเหล่านี้เข้ากับพีดีเอที่ยอมรับความฉลาดทางขวา ถ้าฉันสามารถสร้างสิ่งที่ฉันพิสูจน์ได้ว่านั้นปราศจากบริบท แต่ฉันกำลังสร้าง PDA นี้อยู่LLLRRRL/RL/RL/R นี่คือสิ่งที่ฉันทำ: ใน PDA ที่รวมสถานะเป็นผลิตภัณฑ์คาร์ทีเซียนของสถานะของออโตมาตาแยก และขอบเป็นขอบของ DFA แต่จะมีเพียงอันเดียวเท่านั้นซึ่งในอนาคตสถานะสุดท้ายของ PDA ดั้งเดิม L สามารถเข้าถึงได้ แต่ไม่รู้จะเขียนมันอย่างไรอย่างเป็นทางการ

4
การขัดจังหวะในบริบทของระบบปฏิบัติการหมายถึงอะไร
ฉันตัดสินใจที่จะอ่านแนวคิดระบบปฏิบัติการโดย Silberschatz, Galvin Gagne (รุ่นที่ 8) ในช่วงฤดูร้อน ฉันได้รับหัวข้อที่ทำให้ฉันสับสน - ขัดจังหวะและบทบาทของพวกเขาเนื่องจากเกี่ยวข้องกับระบบปฏิบัติการ ข้อความบอกว่าระบบปฏิบัติการจะเริ่มกระบวนการแรกเช่น "init" จากนั้นรอให้เกิดเหตุการณ์ "" และเหตุการณ์นี้มักจะมีสัญญาณจากการขัดจังหวะ ข้อความยังบอกด้วยว่าการขัดจังหวะอาจมาจากฮาร์ดแวร์หรือซอฟต์แวร์ มันทำงานอย่างไรในรายละเอียดเพิ่มเติมเล็กน้อย? ระบบปฏิบัติการขับเคลื่อนด้วยอินเตอร์รัปต์หรือไม่ ฉันแค่มองหาความเข้าใจภาพรวมขนาดใหญ่

1
WPA2 พร้อมคีย์ที่แบ่งปันล่วงหน้าเป็นตัวอย่างของการพิสูจน์ความรู้แบบศูนย์หรือไม่
เมื่อตั้งค่าจุดเข้าใช้งานและเลือก WPA2 เราต้องป้อนคีย์ที่แชร์ล่วงหน้า (รหัสผ่าน), PSK ด้วยตนเองลงในทั้ง AP และ STA ทั้งสองฝ่าย AP และ STA ต้องตรวจสอบสิทธิ์ซึ่งกันและกัน แต่พวกเขาต้องทำโดยไม่เปิดเผย PSK ทั้งคู่ต้องพิสูจน์ต่ออีกฝ่ายว่าพวกเขารู้จัก PSK โดยไม่ได้ส่งจริง นั่นเป็นตัวอย่างของการพิสูจน์ความรู้ที่เป็นศูนย์หรือไม่? ฉันคิดว่ามันเป็น แต่ไม่มีอะไรที่ legit ปรากฏขึ้นเมื่อฉัน google สำหรับการพิสูจน์ความรู้ศูนย์และ WPA2 หรือ EPA-PSK (วิธีการตรวจสอบที่ใช้)

1
กำลังมองหาอัลกอริทึมการจัดอันดับที่โปรดปรานรายการใหม่
ฉันกำลังทำงานกับระบบการจัดอันดับที่จะจัดอันดับรายการตามคะแนนเสียงที่ได้รับในช่วงระยะเวลาหนึ่ง ฉันกำลังมองหาอัลกอริทึมที่จะคำนวณคะแนนที่ค่อนข้างดีโดยเฉลี่ยอย่างไรก็ตามฉันต้องการให้คะแนนใหม่มากกว่าคะแนนที่เก่ากว่า ฉันกำลังคิดถึงบางสิ่งตามแนว: s c o r e1+ 2 ⋅ s c o r e2 + ⋯ + n ⋅ s c o r en1 + 2 + ⋯ + nsคโอRอี1+ 2⋅sคโอRอี2 + ⋯+ n⋅sคโอRอีn1+2+⋯+n\frac{\mathrm{score}_1 +\ 2\cdot \mathrm{score}_2\ +\ \dots +\ n\cdot \mathrm{score}_n}{1 + 2 + \dots + n} ฉันสงสัยว่ามีอัลกอริทึมอื่นที่มักใช้กับสถานการณ์เช่นนี้หรือไม่และถ้าเป็นเช่นนั้นคุณช่วยอธิบายพวกเขาได้ไหม

1
ครอบคลุมสี่เหลี่ยมผืนผ้าโดยสายการกวาด
ฉันได้รับแบบฝึกหัดโชคไม่ดีที่ฉันไม่ประสบความสำเร็จ มีชุดของรูปสี่เหลี่ยมเป็นและสี่เหลี่ยมผืนผ้า{0} การใช้อัลกอริธึมการกวาดล้างบนเครื่องบินกำหนดว่าครอบคลุมโดยชุดหรือไม่R1. .RnR1..RnR_{1}..R_{n}R0R0R_{0}R0R0R_{0}R1. .RnR1..RnR_{1}..R_{n} สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับหลักการของอัลกอริทึมบรรทัดกวาดดูที่นี่ ให้เริ่มต้นจากจุดเริ่มต้น. เริ่มแรกเรารู้จักอัลกอริทึมการกวาดบรรทัดเป็นอัลกอริทึมสำหรับการค้นหาจุดตัดเซกเมนต์ของบรรทัดที่ต้องการโครงสร้างข้อมูลสองแบบ: ชุดของคะแนนเหตุการณ์ (จัดเก็บจุดสิ้นสุดของส่วนและจุดแยก)QQQ สถานะ (โครงสร้างแบบไดนามิกสำหรับชุดเซกเมนต์ของเส้นการกวาดที่ตัดกัน)TTT แนวคิดทั่วไป:สมมติว่าบรรทัดการกวาดเป็นเส้นแนวตั้งที่เริ่มเข้าใกล้ชุดของสี่เหลี่ยมจากด้านซ้าย ทั้งหมดเรียงพิกัดของรูปสี่เหลี่ยมและเก็บไว้ในในการเพิ่มการสั่งซื้อ - ควรใช้เวลาn) เริ่มต้นจากจุดเหตุการณ์แรกสำหรับทุก ๆ จุดกำหนดชุดของรูปสี่เหลี่ยมที่ตัดกันที่พิกัดกำหนดระบุส่วนต่อเนื่องของรูปสี่เหลี่ยมผืนผ้าแยกและตรวจสอบว่าพวกเขาครอบคลุมที่พิกัดปัจจุบันทั้งหมดหรือไม่ ด้วยเป็นต้นไม้ไบนารีมันจะใช้เวลาn) หากส่วนใดส่วนหนึ่งของยังคงเปิดอยู่ล.llxxxQQQO ( n บันทึกn )O(nlog⁡n)O(n\log n)xxxR0R0R_{0}xxxTTTO ( บันทึกn )O(log⁡n)O(\log n)R0R0R_{0}R0R0R_{0}ไม่ได้ครอบคลุมอย่างสมบูรณ์ รายละเอียด:แนวคิดของอัลกอริทึมการตัดเซกเมนต์คือเซ็กเมนต์ที่อยู่ติดกันตัดกัน จากข้อเท็จจริงนี้เราได้สร้างสถานะและดูแลรักษาตลอดขั้นตอนวิธี ฉันพยายามค้นหาความคิดที่คล้ายกันในกรณีนี้และจนถึงขณะนี้โดยไม่ประสบความสำเร็จสิ่งเดียวที่ฉันสามารถพูดได้ก็คือสี่เหลี่ยมสองรูปตัดกันถ้าพิกัดและตรงกันของพวกเขาทับซ้อนกันTTTxxxYyy ปัญหาคือวิธีการสร้างและดูแลรักษาและความซับซ้อนของการสร้างและดูแลรักษาคืออะไร ฉันคิดว่าต้นไม้ Rมีประโยชน์อย่างมากในกรณีนี้ แต่เนื่องจากฉันพบว่ามันยากมากที่จะกำหนดสี่เหลี่ยมผืนผ้าขอบเขตขั้นต่ำโดยใช้ต้นไม้ RTTTTTT คุณมีความคิดเกี่ยวกับวิธีการแก้ปัญหานี้และโดยเฉพาะอย่างยิ่งวิธีการสร้างหรือไม่?TTT

3
Cross T ของไดอะแกรม T
ฉันกำลังศึกษา Bootstrapping จาก Red Dragon Book Compilers และพบว่าแผนภาพ T สำหรับ cross compiler ค่อนข้างสับสน ฉันไม่เข้าใจความหมายของ "Run compiler1 ถึง compiler2" ทุกคนสามารถให้คำอธิบายที่ดีกว่าการเปรียบเทียบหรือตัวอย่างที่เกี่ยวข้องกับคอมไพเลอร์โลกแห่งความจริงได้หรือไม่? สัญกรณ์บางอย่างก่อน โดย ฉันหมายความว่าคอมไพเลอร์สำหรับภาษา เขียนในภาษาที่ผลิตส่งออกภาษา / รหัสเครื่องNนี่คือหลุมฝังศพหรือ T-แผนภาพLSN=LSN=LSN= LLLSSSNNN รวบรวมคอมไพเลอร์ สมมติว่าเรามีคอมไพเลอร์ข้ามภาษาใหม่ L ในภาษาที่ใช้งาน S การสร้างรหัสสำหรับเครื่อง N LSN=LSN=LSN= สมมติว่าเรายังมีคอมไพเลอร์ S ที่มีอยู่กำลังทำงานอยู่บนเครื่องที่ใช้รหัส M สำหรับเครื่อง M: SMM=SMM=SMM= เรียกใช้ LSN ผ่าน SMM เพื่อสร้าง LMN คอมไพเลอร์ก่อสร้าง LMN=LSN+SMMLMN=LSN+SMMLMN …

1
โจมตีฟังก์ชั่นแฮชที่ไม่ตอบสนองคุณสมบัติทางเดียว
ฉันกำลังทบทวนหลักสูตรความปลอดภัยของคอมพิวเตอร์และฉันติดคำถามหนึ่งในคำถามที่ผ่านมา นี่ไง: อลิซ (AAA) ต้องการส่งข้อความสั้น ๆ MMM ถึงบ๊อบBBB) ใช้ความลับร่วมกัน SabSabS_{ab}เพื่อตรวจสอบว่าข้อความมาจากเธอ เธอเสนอที่จะส่งข้อความเดียวที่มีสองชิ้น: A→B:M,h(M∥Sab)A→B:M,h(M∥Sab) A \to B: \quad M, h(M \mathbin\parallel S_{ab}) ที่ไหน hhh เป็นฟังก์ชันแฮชและ ∥∥\parallel หมายถึงการต่อกัน อธิบายอย่างรอบคอบว่าบ็อบทำอะไรเพื่อตรวจสอบว่าข้อความมาจากอลิซและทำไม (นอกเหนือจากคุณสมบัติของ hhh) เขาอาจเชื่อในสิ่งนี้ สมมติว่า hhhไม่ตรงตามคุณสมบัติทางเดียวและเป็นไปได้ที่จะสร้างภาพล่วงหน้า อธิบายว่าผู้โจมตีสามารถทำอะไรได้บ้าง หากการสร้างภาพล่วงหน้าใช้เวลาค่อนข้างนานแนะนำให้ใช้มาตรการตอบโต้ง่ายๆเพื่อปรับปรุงโปรโตคอลโดยไม่เปลี่ยนแปลง hhh. ฉันคิดว่าฉันรู้คนแรก บ๊อบต้องใช้แฮชของข้อความที่ได้รับพร้อมกับรหัสแชร์ของเขาและเปรียบเทียบแฮชนั้นกับแฮชที่ได้รับจากอลิซถ้าตรงกันพวกเขาควรพิสูจน์ว่าอลิซส่งมา ฉันไม่แน่ใจเกี่ยวกับคำถามสองข้อที่สอง สำหรับคำตอบที่สองคำตอบคือผู้โจมตีสามารถได้รับข้อความดั้งเดิมเมื่อมีการแฮชหรือไม่? ฉันไม่แน่ใจว่าจะทำอย่างไร

1
ปัญหาบุรุษไปรษณีย์จีน: การค้นหาการเชื่อมต่อที่ดีที่สุดระหว่างโหนดคี่องศา
ฉันกำลังเขียนโปรแกรมแก้ปัญหาบุรุษไปรษณีย์จีน (หรือที่เรียกว่าปัญหาการตรวจสอบเส้นทาง) ใน draph ที่ไม่ได้ใช้เส้นทางและกำลังเผชิญปัญหาเพื่อค้นหาขอบเพิ่มเติมที่ดีที่สุดในการเชื่อมต่อโหนดที่มีระดับคี่ดังนั้นฉันจึงสามารถคำนวณวงจร Eulerian อาจมี (พิจารณาขนาดของกราฟที่ต้องการแก้ไข) การรวมกันของขนาดมหึมาซึ่งจำเป็นต้องคำนวณและประเมินผล ตัวอย่างเช่นมีแปลกองศาโหนดH ชุดค่าผสมที่ดีที่สุดอาจเป็น:A , B , C, D , E, F, G , HA,B,C,D,E,F,G,HA, B, C, D, E, F, G, H BABAB , , ,คDCDCDEFEFEFG HGHGH CACAC , ,B DBDBDEHEHEH, FGFGFG DADAD, B CBCBC, EGEGEG, FHFHFH EAEAE .... ที่ไหน BABAB หมายถึง "edge …

1
ขอบเขตล่างของการคำนวณฟังก์ชันของชุด
มีชุดขององค์ประกอบสมมุติว่าฉันต้องการคำนวณฟังก์ชั่นที่ไวต่อทุกส่วนของอินพุตเช่นขึ้นอยู่กับสมาชิกของ (เช่นเป็นไปได้ที่จะเปลี่ยนสมาชิกของบางอย่าง อื่นเพื่อรับอินพุตใหม่ค่าของบนและจะแตกต่างกัน)AAAnnnฉ( A )f(A)f(A)AAAAAAA'A′A'ฉffAAAA′A′A' ตัวอย่างเช่นอาจเป็นผลรวมหรือค่าเฉลี่ยfff มีผลลัพธ์ที่พิสูจน์ได้หรือไม่ว่าภายใต้เงื่อนไขบางอย่างเวลาที่จำเป็นสำหรับเครื่องทัวริงที่กำหนดขึ้นเพื่อคำนวณจะเป็นหรือไม่?fffΩ(n)Ω(n)\Omega(n)

4
คำที่มีผลทางขวาและทางซ้ายเหมือนกัน
ฉันได้เริ่มต้นในการศึกษาออกำหนดไม่ใช่ใช้หนังสือของHopcroft และ Ullman ฉันติดอยู่ในปัญหาที่ฉันพบว่าน่าสนใจมาก: ให้ออโตเมทริก จำกัด ที่ไม่ได้กำหนดค่าไว้ให้ยอมรับสตริงทั้งหมดที่มีค่าเท่ากันเมื่อประเมินจากซ้ายไปขวาเป็นจากขวาไปซ้ายโดยการคูณตามตารางต่อไปนี้: ×abcaacbbaacccba×abcaaacbcabcbca\qquad \displaystyle\begin{array}{c|ccc} \times & a & b & c \\ \hline a & a & a & c \\ b & c & a & b \\ c & b & c &a \end{array} ดังนั้นหากเรามีสตริง , สินค้าจากซ้ายไปขวาคือและ ผลิตภัณฑ์จากขวาไปซ้ายคือขcabcabc( a × b ) × …

1
การแก้ไขการเกิดซ้ำผ่านพหุนามลักษณะด้วยรากแบบจินตภาพ
ในการวิเคราะห์อัลกอริทึมคุณมักจะต้องแก้ปัญหาซ้ำ นอกเหนือไปจากโททฤษฎีบททดแทนและซ้ำวิธีการมีหนึ่งโดยใช้ชื่อที่ประกอบด้วยหลายลักษณะ บอกว่าฉันได้ข้อสรุปว่าพหุนามลักษณะ x2- 2 x + 2x2−2x+2x^2 - 2x + 2มีรากในจินตนาการคือx1= 1 + ix1=1+ix_1 = 1+i และ x2= 1 - ix2=1−ix_2 =1-i. ถ้าอย่างนั้นฉันก็ใช้ไม่ได้ ค1⋅xn1+ค2⋅xn2c1⋅x1n+c2⋅x2n\qquad c_1\cdot x_1^n + c_2\cdot x_2^n ได้รับการแก้ปัญหาใช่มั้ย ฉันควรดำเนินการอย่างไรในกรณีนี้

1
แสดงการเปลี่ยนแปลงโดยพลการเป็นลำดับของการดำเนินการ (แทรกย้ายลบ)
สมมติว่าฉันมีสองสาย โทรหาพวกเขาAAA และ BBB. ไม่มีสตริงที่มีอักขระซ้ำ ๆ กัน ฉันจะค้นหาลำดับการแทรกย้ายและลบที่สั้นที่สุดที่เปลี่ยนไปได้อย่างไร AAA เข้าไป BBBที่ไหน: insert(char, offset)แทรกcharที่กำหนดoffsetในสตริง move(from_offset, to_offset)ย้ายอักขระปัจจุบันที่ออฟเซ็ตfrom_offsetไปยังตำแหน่งใหม่เพื่อให้ออฟเซ็ตto_offset delete(offset) ลบอักขระที่ offset แอปพลิเคชันตัวอย่าง: คุณทำการสืบค้นฐานข้อมูลและแสดงผลลัพธ์บนเว็บไซต์ของคุณ ในภายหลังคุณรันการสืบค้นฐานข้อมูลอีกครั้งและค้นพบว่าผลลัพธ์มีการเปลี่ยนแปลง คุณต้องการเปลี่ยนสิ่งที่อยู่บนหน้าเพื่อให้ตรงกับสิ่งที่อยู่ในฐานข้อมูลโดยใช้การดำเนินการ DOM ขั้นต่ำ มีสองเหตุผลที่คุณต้องการให้ลำดับการทำงานสั้นที่สุด ครั้งแรกที่มีประสิทธิภาพ เมื่อมีการเปลี่ยนแปลงระเบียนเพียงไม่กี่คุณต้องการให้แน่ใจว่าคุณทำO (1)O(1)\mathcal{O}(1) ค่อนข้างมากกว่า O (n)O(n)\mathcal{O}(n)การทำงานของ DOM เนื่องจากมีราคาแพง ประการที่สองความถูกต้อง หากรายการถูกย้ายจากตำแหน่งหนึ่งไปอีกตำแหน่งหนึ่งคุณต้องการย้ายโหนด DOM ที่เกี่ยวข้องในการดำเนินการครั้งเดียวโดยไม่ต้องทำลายและสร้างใหม่อีกครั้ง มิฉะนั้นคุณจะสูญเสียสถานะโฟกัสเนื้อหาของ<input>องค์ประกอบและอื่น ๆ

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

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