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

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

1
มีการใช้งานล็อคฮาร์ดแวร์โดยไม่ต้องทดสอบและตั้งค่าหรือแลกเปลี่ยน?
โดยทั่วไปแล้วล็อกจะถูกนำไปใช้ผ่านคำแนะนำการทดสอบและตั้งค่าและสลับระดับเครื่อง มีการนำไปใช้งานอื่น ๆ ที่ไม่ได้ใช้สิ่งเหล่านี้หรือไม่? นอกจากนี้เราสามารถพูดได้หรือไม่ว่าโซลูชั่นระดับฮาร์ดแวร์ทั้งหมดสำหรับปัญหาส่วนที่สำคัญสามารถแบ่งได้เป็นสามส่วนคือการปิดใช้งานการขัดจังหวะการทดสอบและตั้งค่าและการสลับ?

3
อัลกอริธึมเชิงเส้นเวลาแบบกำหนดแน่นอนเพื่อตรวจสอบว่าหนึ่งอาเรย์เป็นเวอร์ชันที่เรียงลำดับของอีกอันหรือไม่
พิจารณาปัญหาต่อไปนี้: อินพุต:สองอาร์เรย์และของความยาวโดยที่อยู่ในลำดับที่เรียงAAABBBnnnBBB ค้นหา:ไม่และมีรายการเดียวกัน (กับหลายหลากของพวกเขา)?AAABBB อัลกอริทึมที่กำหนดได้เร็วที่สุดสำหรับปัญหานี้คืออะไร สามารถแก้ไขได้เร็วกว่าการเรียงลำดับหรือไม่ สามารถแก้ปัญหานี้ในเวลาเชิงเส้นที่กำหนดได้หรือไม่?

1
มีอัลกอริทึม O (n log n) สำหรับการทำให้เป็นเส้น 4D ง่ายขึ้นหรือไม่?
อัลกอริทึม Ramer-Douglas-Peuckerสำหรับสายเรียบง่ายมีกรณีที่แย่ที่สุดรันไทม์ สำหรับอินพุตสุ่มแบบกระจายที่เหมาะสมจะมีความซับซ้อนรันไทม์ใน 2D มีอัลกอริธึมอื่นที่มีความซับซ้อนของ runtime caseแย่ที่สุดซึ่งคำนวณผลลัพธ์แบบเดียวกับอัลกอริทึม Ramer-Douglas-Peucker เนื่องจากอัลกอริธึมเหล่านี้มีพื้นฐานมาจากโครงสร้างข้อมูล "path (convex) hull" จึงไม่ชัดเจนว่าจะสามารถใช้กับบรรทัด 4D ได้หรือไม่O(n2)O(n2)O(n^2)O(nlogn)O(nlog⁡n)O(n \log n)O(nlogn)O(nlog⁡n)O(n \log n) มีอัลกอริทึม (สุ่ม) ซึ่งมี (คาดว่า)รันไทม์ (เป็นอิสระจากอินพุต) สำหรับกรณีของเส้น 4D หรือไม่? คุณอาจถือว่าระยะทางแบบยุคลิดและความอดทนแบบสัมบูรณ์ทั่วโลกO(nlogn)O(nlog⁡n)O(n \log n)

2
ปัญหาที่พิสูจน์ได้ต้องใช้เวลากำลังสอง
ฉันกำลังมองหาตัวอย่างของปัญหาที่มีความผูกพันลดลงของ ) สำหรับการป้อนข้อมูลx xΩ ( | x |2Ω(|x|2\Omega(|x|^2xxx ปัญหาต้องมีคุณสมบัติดังต่อไปนี้: Ω ( n2)Ω(n2)\Omega(n^2)พิสูจน์รันไทม์ของสำหรับอัลกอริทึมใด ๆ - ลำดับความสำคัญอันดับแรกคือการมีอาร์กิวเมนต์ที่ต่ำกว่าง่ายที่สุดเท่าที่จะทำได้ O ( n2)O(n2)O(n^2)อัลกอริธึมถ้าเป็นไปได้ก็ทำได้ง่ายเช่นกัน ขนาดเอาต์พุตของ (หรือเล็กกว่า) เห็นได้ชัดว่าปัญหาใด ๆ ที่ต้องการเอาท์พุทยาวต้องใช้เวลาทำงานที่คล้ายกันอย่างน้อย แต่นั่นไม่ใช่สิ่งที่ฉันกำลังมองหา ขอให้สังเกตว่าปัญหาการตัดสินใจใด ๆ เหมาะกับที่นี่Ω ( n 2 )O ( n )O(n)O(n)Ω ( n2)Ω(n2)\Omega(n^2) (ถ้าเป็นไปได้) ปัญหา "ธรรมชาติ" หากไม่มีคำจำกัดความที่เป็นทางการปัญหาของผู้สำเร็จการศึกษาจาก CS จะเป็นที่ยอมรับ เมื่อไม่นานมานี้ฉันถูกถามเกี่ยวกับปัญหาดังกล่าว แต่ไม่สามารถคิดได้ง่ายๆ ปัญหาแรกที่นึกได้คือซึ่งคิดว่าเป็นปัญหารันไทม์\ Omega (n ^ 2) นี่ไม่ง่ายพอและยิ่งกว่านั้นโครงสร้างได้รับการพิสูจน์แล้วว่าเป็นเท็จ …

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

1
คลาสของโครงสร้างข้อมูลใดที่สามารถคงอยู่ได้?
โครงสร้างข้อมูลถาวรเป็นโครงสร้างข้อมูลที่ไม่เปลี่ยนรูป การดำเนินการกับพวกเขากลับ "สำเนา" ใหม่ของโครงสร้างข้อมูล แต่การเปลี่ยนแปลงโดยการดำเนินการ; โครงสร้างข้อมูลเก่ายังคงไม่เปลี่ยนแปลง ประสิทธิภาพโดยทั่วไปสามารถทำได้โดยการแบ่งปันข้อมูลบางส่วนและหลีกเลี่ยงการคัดลอกโครงสร้างข้อมูลอย่างสมบูรณ์ คำถาม: มีผลลัพธ์เกี่ยวกับคลาสของโครงสร้างข้อมูลที่สามารถทำให้เป็นแบบถาวร (ในขณะที่รักษาความซับซ้อนที่เหมือนกันหรือคล้ายกันมาก)? สามารถทุกโครงสร้างข้อมูลจะทำถาวร (ในขณะที่การรักษาความซับซ้อนเดียวกันหรือคล้ายกันมาก)? ทราบว่าโครงสร้างข้อมูลใดไม่สามารถคงอยู่ได้ (ในขณะที่รักษาความซับซ้อนที่เหมือนกันหรือคล้ายกันมาก)?

3
มีคุกกี้จำนวนเท่าใดในกล่องคุกกี้ - ปูกระเบื้องดาว
กับเทศกาลวันหยุดที่กำลังจะมาฉันตัดสินใจที่จะทำให้บางดาวอบเชย นั่นเป็นเรื่องสนุก (และผลลัพธ์ที่ออกมาอร่อย) แต่ความเบื่อหน่ายภายในของฉันเมื่อฉันใส่ถาดดาวดวงแรกลงในกล่องและพวกมันจะไม่พอดีในชั้นเดียว: เกือบ! มีวิธีที่พวกเขาจะพอดีหรือไม่? เราจะปูกระเบื้องดาวได้ดีแค่ไหนกันล่ะ? ระบุว่านี่เป็นดาวหกแฉกปกติเราสามารถใช้การเอียงของรูปหกเหลี่ยมที่รู้จักกันดีในการประมาณเช่น: messed up หนึ่งไปที่มุมขวาบนขออภัย แต่นี่เป็นสิ่งที่ดีที่สุดเหรอ? มีที่ว่างมากมายระหว่างคำแนะนำ สำหรับการพิจารณานี้ให้เรา จำกัด ตัวเราไว้ที่กล่องสี่เหลี่ยมและดาวหกแฉกนั่นคือมีสามสิบองศา (หรือ ) ระหว่างคำแนะนำทุกอย่างและเพื่อนบ้านของมัน ดาวฤกษ์นั้นโดดเด่นด้วยรัศมีภายในและรัศมีรอบนอกr_o :π6π6\frac{\pi}{6}RผมRผมr_iRโอRโอr_o [ แหล่งที่มา ] โปรดทราบว่าเรามีรูปหกเหลี่ยมสำหรับและ hexagrams สำหรับr_o ฉันคิดว่ามันสมเหตุสมผลที่จะพิจารณาถึงความสุดยอดเหล่านี้ (สำหรับคุกกี้) และ จำกัด ตัวเราให้อยู่ในช่วงระหว่างนั่นคือBigr]Rผม= 3√2⋅ rโอRผม=32⋅Rโอr_i = \frac{\sqrt{3}}{2} \cdot r_oRผม= 13√⋅ rโอRผม=13⋅Rโอr_i = \frac{1}{\sqrt{3}} \cdot r_oRผมR0∈ [ 13√, 3√2]RผมR0∈[13,32]\frac{r_i}{r_0} \in \Bigl[\frac{1}{\sqrt{3}}, \frac{\sqrt{3}}{2}\Bigr] …

3
วิธีการใช้ปัญญาประดิษฐ์ในหมากรุกคอมพิวเตอร์
ในบางเอกสาร (ประวัติศาสตร์) หมากรุกถูกเรียกว่า drosophila ของปัญญาประดิษฐ์ ในขณะที่ฉันคิดว่าในการวิจัยปัจจุบันการประยุกต์ใช้อัลกอริทึมการค้นหาเป็นวิทยาศาสตร์คอมพิวเตอร์ขั้นสูงที่ดีที่สุดแต่ฉันเชื่อว่ายังมีพื้นที่ที่สามารถนำไปใช้ (และฝึกฝน) เทคนิค AI ตัวอย่างง่ายๆคือการเปิดการเรียนรู้หนังสือโดยที่คนหนึ่งสามารถสอนโปรแกรมว่าจะใช้หรือไม่ใช้การเคลื่อนไหวบางอย่างในการเปิดเพราะโปรแกรมไม่ได้อยู่ในตำแหน่งบางประเภท เราสามารถใช้รูปแบบของการเรียนรู้การ inforce ใหม่และทำให้สิ่งนี้เป็นแบบอัตโนมัติ: ฉันคิดว่าฉันสามารถเล่นโปรแกรมกับตัวเองและเพิ่มความน่าจะเป็นในการชนะเส้นและลดโอกาสในการสูญเสียเส้น ตัวอย่างที่ซับซ้อนมากขึ้นคือการใช้ฟังก์ชั่นการประเมินการเรียนรู้(ตัวอย่างเช่นหนึ่งสามารถปรับค่าของตารางชิ้นสี่เหลี่ยม ) อย่างไรก็ตามฉันคิดว่า: ให้เสียงทั้งหมดเนื่องจากมีตำแหน่งจริงจำนวนมหาศาล (ตรงข้ามกับจำนวนบรรทัดเปิดจริง) และด้วยราคา (ระยะเวลา) ของเกมหมากรุกคอมพิวเตอร์และความต้องการในการเล่น เราจะทำสิ่งนี้ได้อย่างมีประสิทธิภาพได้อย่างไร (หรือฉันควรดูเทคนิคอื่น ๆ เช่นโครงข่ายประสาทเทียม)

2
ระบบปฏิบัติการสร้างเอนโทรปีสำหรับเมล็ดสุ่มอย่างไร
บน Linux ไฟล์/dev/randomและ/dev/urandomไฟล์คือแหล่งข้อมูลการบล็อกและไม่บล็อก (ตามลำดับ) ของการสุ่มหลอก พวกเขาสามารถอ่านเป็นไฟล์ปกติ: $ hexdump /dev/random 0000000 28eb d9e7 44bb 1ac9 d06f b943 f904 8ffa 0000010 5652 1f08 ccb8 9ee2 d85c 7c6b ddb2 bcbe 0000020 f841 bd90 9e7c 5be2 eecc e395 5971 ab7f 0000030 864f d402 74dd 1aa8 925d 8a80 de75 a0e3 0000040 cb64 4422 02f7 0c50 …

2
เรียงลำดับอาร์เรย์ของจำนวนเต็ม 5 จำนวนโดยเปรียบเทียบได้สูงสุด 7 รายการ
ฉันจะเรียงลำดับรายการจำนวนเต็ม 5 ตัวได้อย่างไรในกรณีที่แย่ที่สุดใช้เวลา 7 เปรียบเทียบ? ฉันไม่สนใจว่าจะมีการปฏิบัติการอื่นอีกกี่ครั้ง ฉันไม่รู้อะไรเป็นพิเศษเกี่ยวกับจำนวนเต็ม ฉันได้ลองวิธีการแบ่งและพิชิตที่แตกต่างกันสองสามข้อซึ่งทำให้ฉันเปรียบเทียบได้ 8 ข้อเช่นต่อไปนี้วิธีการผสานหรือผสานการผสานกับการใช้การค้นหาแบบไบนารีเพื่อค้นหาตำแหน่งการแทรก แต่ทุกครั้งที่ฉันจบด้วย 8 เปรียบเทียบกรณีที่เลวร้ายที่สุด . ตอนนี้ฉันแค่มองหาคำใบ้ไม่ใช่วิธีแก้ปัญหา

4
ทำไมจึงเป็นสิ่งสำคัญสำหรับฟังก์ชั่นที่จะไม่ระบุชื่อในแลมบ์ดาแคลคูลัส?
ฉันกำลังดูการบรรยายของ Jim Weirich หัวข้อ ' Adventures in Functional Programming ' ในการบรรยายครั้งนี้เขาแนะนำแนวคิดของ Y-combinators ซึ่งโดยพื้นฐานแล้วพบว่าจุดคงที่สำหรับฟังก์ชันลำดับที่สูงขึ้น แรงจูงใจอย่างหนึ่งที่เขากล่าวถึงคือสามารถแสดงฟังก์ชันแบบเรียกซ้ำโดยใช้แลมบ์ดาแคลคูลัสเพื่อให้ทฤษฎีโดยคริสตจักร (สิ่งที่คำนวณได้อย่างมีประสิทธิภาพสามารถคำนวณได้โดยใช้แคลคูลัสแลมด้า) ปัญหาก็คือฟังก์ชั่นไม่สามารถเรียกตัวเองได้อย่างง่าย ๆ เพราะแคลคูลัสแลมบ์ดาไม่อนุญาตให้ใช้ฟังก์ชั่นที่ตั้งชื่อเช่น n(x,y)=x+yn(x,y)=x+Yn(x, y) = x + y ไม่สามารถรับชื่อ ' ' ได้จะต้องกำหนดโดยไม่ระบุชื่อ:nnn ( x ,y)→x+y(x,y)→x+y(x, y) \rightarrow x + y ทำไมการแคลคูลัสแลมบ์ดาจึงมีฟังก์ชั่นที่ไม่มีชื่อ หลักการใดที่ถูกละเมิดหากมีฟังก์ชั่นที่มีชื่อ? หรือว่าฉันเพิ่งเข้าใจผิดวิดีโอของจิม

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

1
ผลรวมถ่วงน้ำหนักของหมายเลข N ล่าสุด
สมมติว่าเราได้รับตัวเลขในสตรีม หลังจากได้รับแต่ละตัวเลขแล้วจะต้องคำนวณผลรวมถ่วงน้ำหนักของตัวเลขสุดท้ายโดยที่น้ำหนักจะเหมือนกันเสมอ แต่ตามอำเภอใจNNN ทำได้อย่างมีประสิทธิภาพแค่ไหนหากเราได้รับอนุญาตให้เก็บโครงสร้างข้อมูลไว้เพื่อช่วยในการคำนวณ? เราสามารถทำได้ดีกว่าคือการคำนวณผลรวมทุกครั้งที่ได้รับตัวเลขหรือไม่Θ(N)Θ(N)\Theta(N) ตัวอย่างเช่นสมมติว่าน้ำหนักที่มีw_4 เมื่อมาถึงจุดหนึ่งที่เรามีรายชื่อของที่ผ่านมาตัวเลขและน้ำหนักรวม dW=⟨w1,w2,w3,w4⟩W=⟨w1,w2,w3,w4⟩W= \langle w_1, w_2, w_3, w_4\rangleNNNL1=⟨a,b,c,d⟩>L1=⟨a,b,c,d⟩>L_1= \langle a, b, c, d \rangle>S1=w1∗a+w2∗b+w3∗c+w4∗dS1=w1∗a+w2∗b+w3∗c+w4∗dS_1=w_1*a+w_2*b+w_3*c+w_4*d เมื่อจำนวนอีกจะได้รับเราปรับปรุงรายการที่จะได้รับและเราจำเป็นต้องคำนวณ .eeeL2=⟨b,c,d,e⟩L2=⟨b,c,d,e⟩L_2= \langle b,c,d,e\rangleS2=w1∗b+w2∗c+w3∗d+w4∗eS2=w1∗b+w2∗c+w3∗d+w4∗eS_2=w_1*b+w_2*c+w_3*d+w_4*e การพิจารณาโดยใช้ FFT กรณีพิเศษของปัญหานี้ดูเหมือนจะแก้ไขได้อย่างมีประสิทธิภาพโดยใช้การแปลงฟูริเยร์อย่างรวดเร็ว ที่นี่เราคำนวณจำนวนเงินชั่งน้ำหนักหลายรายการNกล่าวอีกนัยหนึ่งเราได้รับหมายเลขNและจากนั้นเราสามารถคำนวณผลรวมNน้ำหนักที่เกี่ยวข้อง การทำเช่นนี้เราต้องN-1หมายเลขที่ผ่านมา (ซึ่งจำนวนเงินที่ได้รับการคำนวณแล้ว) และยังไม่มีตัวเลขใหม่ทั้งหมด2N-1หมายเลขSSSNNNNNNNNNN−1N−1N-1NNN2N−12N−12N-1 ถ้าเวกเตอร์ของตัวเลขอินพุตและเวกเตอร์น้ำหนักWWWกำหนดสัมประสิทธิ์ของพหุนามP(x)P(x)P(x)และQ(x)Q(x)Q(x)โดยมีค่าสัมประสิทธิ์ในQQQกลับด้านเราจะเห็นว่าผลิตภัณฑ์P(x)×Q(x)P(x)×Q(x)P(x)\times Q(x)เป็น พหุนามซึ่งมีค่าสัมประสิทธิ์อยู่ด้านหน้าxN−1xN−1x^{N-1}สูงสุดx2N−2x2N−2x^{2N-2}เป็นผลรวมของน้ำหนักที่เราแสวงหา สิ่งเหล่านี้สามารถคำนวณได้โดยใช้ FFT ในเวลาΘ(N∗log(N))Θ(N∗log⁡(N))\Theta(N*\log (N))ซึ่งทำให้เรามีเวลาเฉลี่ยΘ(log(N))Θ(log⁡(N))Θ(\log (N))ต่อจำนวนอินพุต อย่างไรก็ตามนี่ไม่ใช่วิธีแก้ปัญหาตามที่ระบุไว้เนื่องจากจำเป็นต้องมีการคำนวณผลรวมถ่วงน้ำหนักอย่างมีประสิทธิภาพทุกครั้งที่รับหมายเลขใหม่ - เราไม่สามารถหน่วงเวลาการคำนวณได้

2
สร้างสองฟังก์ชั่น
สร้างสองฟังก์ชันพอใจ:ฉ, g: R+→ R+f,g:R+→R+ f,g: R^+ → R^+ ต่อเนื่อง;ฉ, gf,gf, g เพิ่มขึ้นอย่างน่าเบื่อฉ, gf,gf, g และกรัม≠ O ( ฉ )ฉ≠ O ( g)f≠O(g)f \ne O(g)ก.≠ O ( f)g≠O(f)g \ne O(f)

2
หนึ่งสามารถแสดงความแข็ง NP โดยการทัวริงการลดลงได้หรือไม่?
ในกระดาษความซับซ้อนของปัญหา FrobeniusโดยRamírez-Alfonsínปัญหาได้รับการพิสูจน์แล้วว่าเป็นปัญหาที่สมบูรณ์โดยใช้การลดลงของทัวริง เป็นไปได้ไหม ว่าอย่างไร ฉันคิดว่ามันเป็นไปได้โดยพหุนามเวลาลดลงหลายคน มีการอ้างอิงเกี่ยวกับเรื่องนี้หรือไม่? มีสองแนวคิดที่แตกต่างกันของความแข็งของ NP แม้กระทั่งความสมบูรณ์ของ NP? แต่แล้วฉันก็สับสนเพราะจากมุมมองที่ใช้งานได้จริงถ้าฉันต้องการแสดงให้เห็นว่าปัญหาของฉันคือปัญหาที่ยากฉันจะใช้อะไร พวกเขาเริ่มต้นคำอธิบายดังนี้: การลดลงของทัวริงเวลาพหุนามจากปัญหาP1P1P_1 ไปยังอีกปัญหาP2P2P_2 เป็นอัลกอริทึมซึ่งจะช่วยแก้ P1P1P_1 โดยใช้ย่อยสมมุติ 'สำหรับการแก้ P2P2P_2 เช่นว่าถ้า A' เป็นอัลกอริทึมเวลาพหุนามสำหรับ P2P2P_2 แล้ว จะเป็นอัลกอริทึมสำหรับเวลาพหุนาม P1P1P_1 1 เราบอกว่า P1P1P_1 สามารถทัวริงลดลง P2P2P_2 2 ปัญหา เรียกว่า (ทัวริง) NP-hard หากมีปัญหาการตัดสินใจที่สมบูรณ์แบบP 2 เช่นที่ P 2 สามารถลดทัวริงเป็น P 1ได้P1P1P_1P2P2P_2P2P2P_2P1P1P_1 จากนั้นพวกเขาใช้การลดทัวริงจากปัญหา NP-complete เพื่อแสดงความสมบูรณ์ NP ของปัญหาอื่น ๆ

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