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

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

6
มีออโต้ที่ไม่ จำกัด ใด ๆ หรือไม่?
ในทฤษฎีออโตมาตะเราทุกคนอ่านออโตมาตะเป็นออโต้ จำกัด ตั้งแต่เริ่มแรก สิ่งที่ฉันอยากรู้คือทำไมออโตมาต้า จำกัด ? เพื่อความชัดเจนมันคืออะไรในหุ่นยนต์ที่มี จำกัด - ตัวอักษรภาษาสตริงที่สร้างด้วยนิพจน์ทั่วไปหรืออะไร และในทางทฤษฎีแล้วมีออโตมาต้าที่ไม่ จำกัด อะไรบ้าง?

2
เหตุใดบันทึกใน big-O ของการค้นหาแบบไบนารีจึงไม่ได้เป็นฐาน 2
ฉันยังใหม่กับการเข้าใจอัลกอริทึมวิทยาศาสตร์คอมพิวเตอร์ ฉันเข้าใจกระบวนการค้นหาแบบไบนารี แต่ฉันมีความเข้าใจผิดเล็กน้อยเกี่ยวกับประสิทธิภาพ ในขนาดขององค์ประกอบมันจะใช้เวลาโดยเฉลี่ยnขั้นตอนในการค้นหาองค์ประกอบเฉพาะ การฐาน 2 ลอการิทึมของอัตราผลตอบแทนที่ทั้งสองฝ่ายเข้าสู่ระบบ2 ( s ) = n ดังนั้นจะไม่ค่าเฉลี่ยของจำนวนขั้นตอนสำหรับการค้นหาแบบทวิภาคจะเข้าสู่ระบบ2 ( s ) ?s = 2ns=2ns = 2^nnnnเข้าสู่ระบบ2( s ) = nlog2⁡(s)=n\log_2(s) = nเข้าสู่ระบบ2( s )log2⁡(s)\log_2(s) บทความนี้วิกิพีเดียในการค้นหาแบบทวิภาคกล่าวว่าผลการดำเนินงานเฉลี่ย ) ทำไมเป็นเช่นนี้ ทำไมไม่ได้หมายเลขนี้เข้าสู่ระบบ2 ( n ) ?O ( บันทึกn )O(log⁡n)O(\log n)เข้าสู่ระบบ2( n )log2⁡(n)\log_2(n)

6
อัลกอริธึมการบีบอัดแบบ lossless ลดเอนโทรปีหรือไม่?
ตามที่Wikipedia : เอนโทรปีของแชนนอนวัดข้อมูลที่มีอยู่ในข้อความซึ่งตรงข้ามกับส่วนของข้อความที่ถูกกำหนด (หรือคาดเดาได้) ตัวอย่างหลัง ได้แก่ ความซ้ำซ้อนในโครงสร้างภาษาหรือคุณสมบัติทางสถิติที่เกี่ยวข้องกับความถี่ที่เกิดขึ้นของตัวอักษรคู่หรือคำคู่สามเท่าเป็นต้น ดังนั้นเอนโทรปีคือการวัดปริมาณข้อมูลที่มีอยู่ในข้อความ เอนโทรปี coders ถูกใช้เพื่อ losslessy บีบอัดข้อความเช่นนี้ไปยังจำนวนบิตขั้นต่ำที่จำเป็นในการแสดงมัน (เอนโทรปี) สำหรับฉันแล้วดูเหมือนว่าเอนโค้ดปีที่สมบูรณ์แบบจะเป็นสิ่งที่จำเป็นสำหรับการบีบอัดข้อความแบบไม่สูญเสียให้มากที่สุดเท่าที่จะทำได้ อัลกอริธึมการบีบอัดจำนวนมากใช้ขั้นตอนก่อนที่จะทำการเข้ารหัสเอนโทรปีเพื่อลดการส่งข้อความ ตามที่วิกิพีเดียภาษาเยอรมัน Entropiekodierer werden häufig mit anderen Kodierern kombiniert. คลิกที่นี่เพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับ Verfahren dazu, Entropie der Daten zu verringern เป็นภาษาอังกฤษ: เอนโทรปีโคเดอร์มักจะถูกรวมเข้ากับเอนโค้ดเดอร์อื่น ๆ ขั้นตอนก่อนหน้านี้ทำหน้าที่ลดปริมาณข้อมูลของเอนโทรปี ie bzip2 ใช้ Burrows-Wheeler-Transform แล้วตามด้วย Move-to-Front-Transform ก่อนที่จะใช้การเข้ารหัสแบบเอนโทรปี (Huffman การเข้ารหัสในกรณีนี้) ขั้นตอนเหล่านี้ลดความเป็นเอนโทรปีของข้อความซึ่งจะลดปริมาณข้อมูลที่มีอยู่ในข้อความหรือไม่ ดูเหมือนจะขัดแย้งกับฉันเพราะนั่นหมายความว่าข้อมูลสูญหายระหว่างการบีบอัดป้องกันการบีบอัดแบบไม่สูญเสีย หรือพวกเขาเพียงแปลงข้อความเพื่อปรับปรุงประสิทธิภาพของอัลกอริทึมการเข้ารหัสเอนโทรปี? หรือเอนโทรปีไม่สอดคล้องกับปริมาณข้อมูลในข้อความโดยตรงหรือไม่?

4
ทำไมการเขียนโปรแกรมเชิงเส้นใน P แต่การเขียนโปรแกรมจำนวนเต็ม NP-hard?
การเขียนโปรแกรมเชิงเส้น (LP) เป็นแบบ P และการเขียนโปรแกรมจำนวนเต็ม (IP) คือ NP-hard แต่เนื่องจากคอมพิวเตอร์สามารถจัดการตัวเลขที่มีความแม่นยำ จำกัด เท่านั้นในทางปฏิบัติคอมพิวเตอร์จึงใช้จำนวนเต็มสำหรับการเขียนโปรแกรมเชิงเส้น ด้วยเหตุนี้ LP และ IP ไม่ควรอยู่ในระดับความซับซ้อนเดียวกันหรือไม่

3
กรณีที่เลวร้ายที่สุดในการจัดเรียงที่มั่นคง?
ฉันมีปัญหาในการค้นหาแหล่งข้อมูลที่ดีซึ่งเป็นกรณีที่แย่ที่สุดในขั้นตอนวิธีการเรียงลำดับที่เสถียร ไม่มีใครรู้แหล่งข้อมูลที่ดีบ้างไหม?O(nlnn)O(nln⁡n)O(n \ln n) เพียงเตือนความจำในสถานที่หมายความว่ามันใช้อาร์เรย์ส่งผ่านและขั้นตอนวิธีการเรียงลำดับได้รับอนุญาตเท่านั้นที่จะใช้พื้นที่พิเศษคงที่ Stable หมายถึงองค์ประกอบที่มีคีย์เดียวกันปรากฏในลำดับเดียวกันในอาร์เรย์ที่เรียงลำดับเหมือนที่เคยเป็นในต้นฉบับ ตัวอย่างเช่นการเรียงลำดับที่ไร้เดียงสาเป็นกรณีที่เลวร้ายที่สุดและเสถียร แต่ใช้พื้นที่พิเศษquicksort มาตรฐานสามารถทำมั่นคงอยู่ในสถานที่ แต่ที่เลวร้ายที่สุดกรณี2) มี Heapsort อยู่กรณีที่เลวร้ายที่สุดแต่ไม่เสถียร Wikipediaมีแผนภูมิที่ดีซึ่งอัลกอริทึมการเรียงลำดับมีข้อบกพร่องใด โปรดสังเกตว่าไม่มีอัลกอริทึมการเรียงลำดับที่แสดงรายการที่มีเงื่อนไขความเสถียรทั้งสามกรณีที่เลวร้ายที่สุดและอยู่ในตำแหน่งO(nlnn)O(nln⁡n)O(n \ln n)O(n)O(n)O(n)O(n2)O(n2)O(n^2)O(nlnn)O(nln⁡n)O(n \ln n)O(nlnn)O(nln⁡n)O(n \ln n) ฉันได้พบเอกสารที่เรียกว่า"การผสานการใช้งานจริงในสถานที่"โดย Katajainen, Pasanen และ Teuhola ซึ่งอ้างว่ามีกรณีที่เลวร้ายที่สุดในรูปแบบการรวมตัวแปรที่เสถียร ถ้าฉันเข้าใจผลลัพธ์ของพวกเขาถูกต้องพวกมันจะใช้การรวม (bottom-up?) ซ้ำในของอาร์เรย์และหลังของแถวและใช้ตัวที่สองเป็นพื้นที่เริ่มต้นในการรวม ฉันยังคงอ่านผ่านทางนี้ดังนั้นข้อมูลเพิ่มเติมเกี่ยวกับว่าฉันตีความผลของพวกเขาอย่างถูกต้องชื่นชมO(nlnn)O(nln⁡n)O(n \ln n)1414\frac{1}{4}1212\frac{1}{2}1414\frac{1}{4} ฉันก็จะสนใจในกรณีที่เลวร้ายที่สุดในสถานที่ที่มั่นคงอย่างรวดเร็ว จากสิ่งที่ฉันเข้าใจการแก้ไข quicksort เป็นกรณีที่เลวร้ายที่สุดต้องเลือกเดือยที่เหมาะสมซึ่งจะทำลายเสถียรภาพที่ปกติแล้วมันจะสนุกO(nlnn)O(nln⁡n)O(n \ln n)O(nlnn)O(nln⁡n)O(n \ln n) นี่เป็นความสนใจทางทฤษฎีอย่างแท้จริงและฉันไม่มีการใช้งานจริง ฉันแค่อยากจะรู้ว่าอัลกอริทึมที่มีคุณสมบัติทั้งสามนี้

2
ไอดริสไม่สามารถทำอะไรได้โดยยอมแพ้ทัวริงครบถ้วน
ฉันรู้ว่าไอดริสมีประเภทตาม แต่ไม่สมบูรณ์ สิ่งใดที่ไม่สามารถทำได้โดยการยกเลิกความสมบูรณ์ของทัวริงและสิ่งนี้เกี่ยวข้องกับการมีประเภทตาม ฉันเดาว่านี่เป็นคำถามที่เฉพาะเจาะจง แต่ฉันไม่ทราบจำนวนมากเกี่ยวกับประเภทพึ่งพาและระบบประเภทที่เกี่ยวข้อง

2
ควอนตัมแลมบ์ดาควอนตัม
คลาสสิกมี 3 วิธีที่เป็นที่นิยมในการคิดเกี่ยวกับการคำนวณ: เครื่องทัวริง, วงจรและแลมบ์ดา - แคลคูลัส (ฉันใช้นี่เป็นตัวจับสำหรับมุมมองการทำงานส่วนใหญ่) ทั้งสามวิธีมีผลคิดวิธีต่าง ๆ ปัญหาและเขตข้อมูลที่แตกต่างกันใช้ formulation ที่แตกต่างกันสำหรับเหตุผลนี้ เมื่อฉันทำงานกับการคำนวณควอนตัม แต่ฉันเคยคิดถึงรูปแบบวงจรเท่านั้น แต่เดิม QC ถูกกำหนดในแง่ของเครื่องทัวริงควอนตัมแต่เท่าที่ฉันเข้าใจความหมายนี้ (แม้ว่าเทียบเท่ากับวงจรควอนตัมถ้าทั้งสองสูตรอย่างระมัดระวัง) ไม่ได้เกือบเป็นผล สูตรที่ 3 (ในแง่ของแลมบ์ดา - แคลคูลัสหรือการตั้งค่าการทำงานที่คล้ายกัน) ฉันไม่คุ้นเคยอย่างสมบูรณ์ ดังนั้นคำถามของฉัน: คำจำกัดความที่มีประโยชน์ของควอนตัมแลมบ์ดา - แคลคูลัส (หรือกระบวนทัศน์การทำงานอื่น ๆ ) คืออะไร? ฟิลด์ QIP ใดที่ได้รับข้อมูลเชิงลึกที่ลึกซึ้งยิ่งขึ้นจากการใช้สูตรนี้แทนแบบจำลองวงจร หมายเหตุ ฉันรู้ว่าฉันไม่สนใจ formalisms นิยมอื่น ๆ เช่นเซลล์ออโต, RAM-รุ่น ฯลฯ ฉันยกเว้นเหล่านี้ส่วนใหญ่เป็นเพราะผมไม่ได้มีประสบการณ์กับความคิดในแง่ของรูปแบบเหล่านี้คลาสสิกให้อยู่คนเดียวquantumly ฉันยังทราบด้วยว่ามีทางเลือกยอดนิยมในการตั้งค่าควอนตัมเช่นการวัดตามโทโพโลยีและอะเดียแบติก ฉันไม่ได้พูดคุยกับพวกเขาเพราะฉันไม่คุ้นเคยกับคู่คลาสสิก

13
เกณฑ์การเลือกภาษาสำหรับหลักสูตรการเขียนโปรแกรมครั้งแรก
ในฐานะที่เป็นผู้สอน CS ในระดับมหาวิทยาลัยปัญหาของการเขียนโปรแกรมภาษาที่จะสอนในหลักสูตรการเขียนโปรแกรมแรกมักจะเกิดขึ้นสำหรับการอภิปราย มีหลายพันภาษาให้เลือกและมีไข้ทางศาสนามากมาย (หรือไข้) สนับสนุนค่ายภาษาหนึ่งมากกว่าอีกภาษาหนึ่ง ความลำเอียงแบบอัตนัยทั้งหมดนี้ล้อมรอบแต่ละภาษาการเขียนโปรแกรมทำให้ผู้สอนเลือกได้ยาก คำถามของฉันคือ: ผู้สอนสามารถใช้เกณฑ์วัตถุประสงค์อะไรในการเลือกภาษาการเขียนโปรแกรมเพื่อใช้เป็นพื้นฐานสำหรับหลักสูตรการเขียนโปรแกรมมหาวิทยาลัยปีแรก เกณฑ์สำหรับเกณฑ์เหล่านี้คืออะไร หมายเหตุ : ฉันไม่ต้องการเห็นรายการภาษาการเขียนโปรแกรมและทำไมจึงเป็นภาษาที่ดีที่สุดที่จะใช้ คำถามคือไม่ได้เกี่ยวกับภาษาที่ดีที่สุดก็เป็นเรื่องเกี่ยวกับเกณฑ์สำหรับการเลือกภาษา คำตอบอาจใช้ภาษาการเขียนโปรแกรมเพื่อแสดงจุดเฉพาะ คำถามนี้ได้รับแรงบันดาลใจจากคำถามอื่นซึ่งถือว่านอกหัวข้อ: https://cs.stackexchange.com/questions/1946/criteria-for-choosing-a-first-programming-language

10
ภาษาการเขียนโปรแกรมด้วยภาพ
พวกเราส่วนใหญ่เรียนรู้การเขียนโปรแกรมโดยใช้ภาษาการเขียนโปรแกรม "ใจความ" เช่น Basic, C / C ++ และ Java ฉันเชื่อว่ามันเป็นธรรมชาติและมีประสิทธิภาพมากขึ้นสำหรับมนุษย์ที่จะคิดด้วยสายตา การเขียนโปรแกรมภาพช่วยให้นักพัฒนาสามารถเขียนโปรแกรมโดยจัดการองค์ประกอบกราฟิก ฉันเดาว่าการใช้การเขียนโปรแกรมด้วยภาพควรปรับปรุงคุณภาพของรหัสและลดข้อบกพร่องในการเขียนโปรแกรม ฉันรู้ภาษาภาพไม่กี่เช่นApp Inventor , รอยขีดข่วนและLabView เหตุใดจึงไม่มีภาษาภาพทั่วไปที่ใช้งานทั่วไปสำหรับนักพัฒนาซอฟต์แวร์ อะไรคือข้อดีและข้อเสียของการเขียนโปรแกรมด้วยภาพ?

1
คุณได้รับ DFS หรือไม่หากคุณเปลี่ยนคิวเป็นสแต็กในการนำไปใช้งาน BFS
นี่คือรหัสเทียมมาตรฐานสำหรับการค้นหาแบบกว้างครั้งแรก: { seen(x) is false for all x at this point } push(q, x0) seen(x0) := true while (!empty(q)) x := pop(q) visit(x) for each y reachable from x by one edge if not seen(y) push(q, y) seen(y) := true ที่นี่pushและpopจะถือว่าเป็นการดำเนินการคิว แต่ถ้าพวกมันเป็นการทำงานแบบกองซ้อน? อัลกอริทึมที่ได้จะไปที่จุดยอดตามลำดับความลึกก่อนหรือไม่ หากคุณโหวตให้ความคิดเห็นว่า "นี่มันเล็กน้อย" ฉันขอให้คุณอธิบายว่าทำไมมันถึงสำคัญ ฉันพบปัญหาค่อนข้างยุ่งยาก

2
มีงานที่สามารถแก้ไขได้ในเวลาพหุนาม แต่ไม่สามารถตรวจสอบได้ในเวลาพหุนาม?
เพื่อนร่วมงานของฉันและฉันเพิ่งอ่านโน้ตของอาจารย์คนหนึ่งของเรา หมายเหตุระบุว่ามีงานที่สามารถแก้ไขได้ในเวลาพหุนาม (อยู่ในชั้นเรียนของ PF) แต่ไม่สามารถตรวจสอบได้ในเวลาพหุนาม (ไม่อยู่ในชั้นเรียนของ NPF) ในการอธิบายอย่างละเอียดเกี่ยวกับคลาสเหล่านี้: เราได้รับอินพุต X และสร้างเอาต์พุต Y บางส่วนซึ่ง (X, Y) สัมพันธ์กับ R แทนงานของเรา หากเป็นไปได้ที่จะได้ Y สำหรับ X ในเวลาพหุนามงานนี้เป็นของคลาสของ PF ถ้าเป็นไปได้ที่จะตรวจสอบใบรับรองความยาวพหุนาม Z ที่พิสูจน์ tuple (X, Y) อยู่ในความสัมพันธ์ R ในเวลาพหุนามงานเป็นของคลาสของ NPF เราไม่ได้พูดถึงปัญหาการตัดสินใจโดยที่คำตอบนั้นเป็นเพียงแค่ใช่หรือไม่ใช่ (อย่างเป็นทางการมากขึ้นถ้าสตริงบางอันเป็นของบางภาษา) สำหรับปัญหาการตัดสินใจปรากฏว่า PF เป็นเซตย่อยที่เหมาะสมของ NPF อย่างไรก็ตามสำหรับงานอื่น ๆ อาจแตกต่างกัน คุณรู้จักงานที่สามารถแก้ไขได้ในเวลาพหุนาม แต่ไม่ตรวจสอบในเวลาพหุนามหรือไม่

3
อัลกอริทึมที่ค้นหาจำนวนเส้นทางง่าย ๆ จาก
ทุกคนสามารถแนะนำผมอัลกอริทึมเส้นเวลาที่ใช้เวลาเป็น input กำกับวัฏจักรกราฟG=(V,E)G=(V,E)G=(V,E)และสองจุดsssและtttและผลตอบแทนจำนวนเส้นทางที่เรียบง่ายจากsssไปtttในG ฉันมีขั้นตอนวิธีการที่ฉันจะทำงาน DFS (ความลึกการค้นหาครั้งแรก) แต่ถ้า DFS พบทีแล้วมันจะไม่เปลี่ยนสี (จากสีขาวเป็นสีเทา) ใด ๆ ของโหนดที่มาในเส้นทางs \ rightsquigarrow เสื้อเพื่อให้ ถ้าเป็น subpath ของเส้นทางอื่น ๆ แล้วยัง DFS ผ่านไป subpath นี้ again.For ตัวอย่างพิจารณารายการถ้อยคำที่เราต้องค้นหาหมายเลขของเส้นทางจากหน้าไปวีGGGttts⇝ts⇝ts \rightsquigarrow tpppvvv posryvzworryvwzsszvposzorsvsrryyvvwzwz\begin{array}{|c|c c c|} \hline p &o &s &z \\ \hline o &r &s &v\\ \hline s &r \\ \hline r &y …

7
คอมพิวเตอร์ตรวจสอบว่าตัวเลขมีขนาดเล็กกว่าหรือมากกว่าได้อย่างไร
มันอาจฟังดูเหมือนคำถามงี่เง่า แต่ฉันอยากรู้จริงๆว่าคอมพิวเตอร์รู้ได้อย่างไรว่า ? คอมพิวเตอร์จะทราบได้อย่างไรว่าลำดับของจำนวนเต็มคือและตัวอักษรคือ A, B, C, D, ... มีที่เก็บไว้ในฮาร์ดแวร์หรือระบบปฏิบัติการให้ข้อมูลประเภทนี้หรือไม่?1 , 2 , 3 , 4 , 5 , ...1 &lt; 21&lt;21<21 , 2 , 3 , 4 , 5 , ...1,2,3,4,5,...1,2,3,4,5,\ldots

9
ความสำคัญของภาษาตามบริบท (ประเภท 1) คืออะไร
เห็นได้ว่าในรัฐChomsky Hierarchy Type 3 สามารถรับรู้โดยเครื่องของรัฐที่ไม่มีหน่วยความจำภายนอก (เช่นเครื่อง จำกัด อัตโนมัติ), Type 2 โดยเครื่องของรัฐที่มีสแต็กเดียว (เช่นเครื่องกดลง) และ Type 0 โดย เครื่องรัฐที่มีสองกอง (หรือเทียบเท่าเทปเช่นเดียวกับกรณีของทัวริงเครื่อง) ภาษาประเภท 1 พอดีกับภาพนี้ได้อย่างไร และข้อดีอะไรบ้างที่นำมาพิจารณาว่าภาษาไม่เพียง แต่พิมพ์ 0 แต่พิมพ์ 1

4
วิธีการวัด“ การเรียงลำดับ”
ฉันสงสัยว่ามีวิธีมาตรฐานในการวัด "sortness" ของอาร์เรย์หรือไม่? อาเรย์ที่มีจำนวนค่ามัธยฐานของค่าการรุกรานที่เป็นไปได้จะถือว่าไม่ได้เรียงลำดับสูงสุดหรือไม่ โดยที่ฉันหมายความว่ามันเป็นพื้นเท่าที่จะทำได้จากการเรียงลำดับหรือเรียงกลับกัน

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