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

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

6
เราสามารถสร้างตัวเลขสุ่มโดยใช้ตัวเลขไม่ลงตัวเช่น like และ e ได้หรือไม่?
หมายเลขที่ไม่มีตัวตนเช่น ,และมีลำดับที่ไม่ซ้ำกันและไม่ซ้ำกันหลังจากจุดทศนิยม หากเราแยกตัวเลข -th จากตัวเลขดังกล่าว (โดยที่คือจำนวนครั้งที่เรียกว่าวิธีการ) และสร้างตัวเลขด้วยตัวเลขตามที่เป็นอยู่เราจะไม่ได้รับตัวสร้างตัวเลขสุ่มสมบูรณ์หรือไม่ ตัวอย่างเช่นหากเราใช้ ,และตัวเลขแรกคือ 123, อันที่สองคือ 471, อันถัดไปคือ 184 เป็นต้นππ\piอีอีe2-√2\sqrt{2}nnnnnn2-√2\sqrt{2}อีอีeππ\pi

5
รหัสเครื่องมีลักษณะอย่างไรในขณะที่ทำงานอยู่
เมื่อรหัสฮาร์ดแวร์ถูกประมวลผลโดยฮาร์ดแวร์และ CPU จริง ๆ แล้วมันมีลักษณะอย่างไร? มันจะมีลักษณะเป็นเลขฐานสองตามคำแนะนำในการเป็นตัวแทนของคนและศูนย์หรือมันจะเป็นสิ่งที่ประกอบด้วยเลขฐานสิบหกหลักที่ opcodes เป็นไบต์นำเสนอเป็นตัวเลขฐานสิบซึ่งสามารถแบ่งกลับลงในเลขฐานสองเช่น bytecode?


2
ทำไมการเพิ่มความน่าจะเป็นของบันทึกจึงเร็วกว่าการคูณความน่าจะเป็น
ในการวางกรอบคำถามในวิทยาการคอมพิวเตอร์บ่อยครั้งที่เราต้องการคำนวณผลคูณของความน่าจะเป็น: P(A,B,C) = P(A) * P(B) * P(C) วิธีที่ง่ายที่สุดคือการคูณตัวเลขเหล่านี้และนั่นคือสิ่งที่ฉันจะทำ อย่างไรก็ตามเจ้านายของฉันกล่าวว่าการเพิ่มบันทึกของความน่าจะเป็นดีกว่า: log(P(A,B,C)) = log(P(A)) + log(P(B)) + log(P(C)) นี่จะให้ความน่าจะเป็นของบันทึก แต่เราสามารถได้ความน่าจะเป็นหลังจากนั้นถ้าจำเป็น: P(A,B,C) = e^log(P(A,B,C)) การเพิ่มบันทึกถือว่าดีกว่าด้วยเหตุผลสองประการ: มันป้องกัน "underflow" โดยผลิตภัณฑ์ของความน่าจะเป็นมีขนาดเล็กจนมันถูกปัดเศษเป็นศูนย์ สิ่งนี้มักเป็นความเสี่ยงเนื่องจากความน่าจะเป็นมีขนาดเล็กมาก มันเร็วกว่าเพราะสถาปัตยกรรมคอมพิวเตอร์จำนวนมากสามารถทำการเพิ่มได้เร็วกว่าการคูณ คำถามของฉันเกี่ยวกับประเด็นที่สอง นี่คือวิธีที่ฉันได้เห็นมันอธิบาย แต่ไม่คำนึงถึงค่าใช้จ่ายเพิ่มเติมในการรับบันทึก! เราควรจะเปรียบเทียบ "ต้นทุนของล็อก + ค่าใช้จ่ายของการเพิ่ม" กับ "ต้นทุนของการคูณ" มันยังมีขนาดเล็กลงหลังจากที่คำนึงถึงเรื่องนี้หรือไม่? นอกจากนี้หน้า Wikipedia ( ความน่าจะเป็นบันทึก ) นั้นสร้างความสับสนในแง่นี้โดยระบุว่า "การแปลงเป็นไฟล์บันทึกมีราคาแพง แต่เกิดขึ้นเพียงครั้งเดียวเท่านั้น" ฉันไม่เข้าใจสิ่งนี้เพราะฉันคิดว่าคุณจะต้องใช้บันทึกของทุกคำศัพท์อย่างอิสระก่อนที่จะเพิ่ม ฉันพลาดอะไรไป ในที่สุดเหตุผลที่ว่า "คอมพิวเตอร์ทำการเพิ่มเร็วกว่าการคูณ" …

8
ข้อมูลทุกชนิดเพิ่งต้มลงไปยังโหนดที่มีตัวชี้หรือไม่?
อาร์เรย์หรือเวกเตอร์เป็นเพียงลำดับของค่า พวกเขาสามารถดำเนินการได้อย่างแน่นอนด้วยรายการที่เชื่อมโยง นี่เป็นเพียงโหนดจำนวนมากที่มีตัวชี้ไปยังโหนดถัดไป สแต็คและคิวเป็นข้อมูลนามธรรมสองประเภทที่สอนกันทั่วไปในหลักสูตร Intro CS ที่ไหนสักแห่งในชั้นเรียนนักเรียนมักจะต้องใช้สแต็คและคิวโดยใช้รายการที่เชื่อมโยงเป็นโครงสร้างข้อมูลพื้นฐานซึ่งหมายความว่าเรากลับไปที่แนวคิด "การรวบรวมโหนด" เดียวกัน คิวลำดับความสำคัญสามารถสร้างขึ้นได้โดยใช้ Heap ฮีปสามารถถูกคิดเป็นต้นไม้ที่มีค่า min ที่รูท ต้นไม้ทุกประเภทรวมถึง BSTs, AVL, ฮีปสามารถถือเป็นชุดของโหนดที่เชื่อมต่อกันด้วยขอบ โหนดเหล่านี้เชื่อมโยงกันโดยที่หนึ่งโหนดชี้ไปที่อื่น ดูเหมือนว่าทุกแนวคิดของข้อมูลสามารถต้มลงไปยังโหนดที่มีพอยน์เตอร์ไปยังโหนดอื่นที่เหมาะสมเท่านั้น นั่นถูกต้องใช่ไหม? ถ้ามันง่ายขนาดนี้ทำไมตำราเรียนไม่อธิบายว่าข้อมูลเป็นเพียงแค่จุดเชื่อมต่อที่มีตัวชี้? เราจะไปจากโหนดไปยังรหัสไบนารีได้อย่างไร

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

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

6
ในเวลา O (n): ค้นหาองค์ประกอบที่ยิ่งใหญ่ที่สุดในชุดซึ่งการเปรียบเทียบไม่ได้ผ่านการถ่ายทอด
หัวข้อระบุคำถาม เรามีรายการองค์ประกอบที่เราสามารถเปรียบเทียบได้ (พิจารณาว่าอะไรคือสิ่งที่ยิ่งใหญ่ที่สุด ) องค์ประกอบไม่สามารถเท่ากับ ประเด็นสำคัญ: การเปรียบเทียบไม่ใช่การถ่ายทอด (คิดว่ากรรไกรกระดาษหิน): สิ่งนี้เป็นจริง: A> B, B> C, C> A (โปรดทราบว่านี่ไม่ใช่การป้อนข้อมูลที่ถูกต้องเนื่องจากไม่มีคำตอบที่ถูกต้องที่นี่ฉันแค่อธิบายว่า " การเปรียบเทียบที่ไม่เกี่ยวกับสกรรมกริยา "หมายถึง) แต่ละอาร์เรย์อินพุตจะรับประกันว่าจะมีคำตอบ ยิ่งใหญ่ที่สุดหมายถึงองค์ประกอบจะต้องมากกว่าองค์ประกอบอื่น ๆ คุณสมบัติการสนทนาถือเช่น A> B หมายความว่า B <A ตัวอย่าง: Input: [A,B,C,D] A > B, B > C, C > A D > A, D > B, D > C Output: …

7
ทำไมวิธีการบีบอัด (ไม่สูญเสีย) เหล่านี้ของรูปภาพ png ที่คล้ายกันหลาย ๆ แบบจึงไม่มีประสิทธิภาพ
ฉันเพิ่งเจอสิ่งต่อไปนี้: ฉันใส่รูปภาพ png ที่เหมือนกันหลายชุดลงในโฟลเดอร์แล้วพยายามบีบอัดโฟลเดอร์นั้นด้วยวิธีการต่อไปนี้: tar czf folder.tar.gz folder/ tar cf folder.tar folder/ && xz --stdout folder.tar > folder.tar.xz (อันนี้ทำงานได้ดีสำหรับภาพที่เหมือนกัน แต่สำหรับภาพที่คล้ายกันกำไรจะเป็นศูนย์) zip -r folder.zip folder/ เมื่อผมตรวจสอบขนาดของ.tar.gz, .tar.xz, ฉันรู้ว่ามันเป็นเกือบเดียวกันเป็นหนึ่งใน.zip ฉันเข้าใจว่ารูปภาพ png เองอาจมีการบีบอัดในระดับสูงดังนั้นจึงไม่สามารถบีบอัดเพิ่มเติมได้ อย่างไรก็ตามเมื่อรวมภาพ png ที่คล้ายกันจำนวนมาก (ในกรณีนี้เหมือนกัน) ไปยังไฟล์เก็บถาวรแล้วบีบอัดไฟล์เก็บถาวรฉันคาดว่าขนาดที่ต้องการจะลดลงอย่างชัดเจน ในกรณีของภาพที่เหมือนกันฉันคาดว่าจะมีขนาดประมาณขนาดของภาพเดียวfolder/

2
อัลกอริธึมที่เร็วที่สุดสำหรับการคูณตัวเลขสองหลักคืออะไร
ฉันต้องการทราบว่าอัลกอริทึมใดที่เร็วที่สุดสำหรับการคูณตัวเลขสองหลัก n? ความซับซ้อนของพื้นที่สามารถผ่อนคลายได้ที่นี่!

2
ทฤษฎีหมวดหมู่ (ไม่ใช่) สำหรับการเขียนโปรแกรม?
หลังจากเรียนรู้ Haskell และภาษา FP อื่น ๆ ที่ไม่บริสุทธิ์ฉันก็ตัดสินใจอ่านเกี่ยวกับทฤษฎีหมวดหมู่ หลังจากได้รับความเข้าใจที่ดีเกี่ยวกับทฤษฎีหมวดฉันเริ่มคิดเกี่ยวกับแนวคิดของทฤษฎีหมวดหมู่ที่สามารถใช้ในการคิดเกี่ยวกับการออกแบบโปรแกรมแต่ไม่ว่าฉันจะพยายามอย่างหนักเพียงใดดูเหมือนว่านี่ไม่ใช่วิธีที่จะไป หลังจากใช้ความพยายามไม่สำเร็จหลายครั้งเพื่อเชื่อมโยงทฤษฎีหมวดหมู่กับโปรแกรมการออกแบบฉันได้ข้อสรุปว่า: หมวดหมู่ทฤษฎีจะเป็นประโยชน์เมื่อการออกแบบภาษาการเขียนโปรแกรม ทฤษฎีหมวดหมู่ไม่ใช่สิ่งที่คุณใช้เมื่อออกแบบโปรแกรม (แม้เมื่อใช้ภาษาที่ได้รับการออกแบบตามหลักการหมวดหมู่) ตัวอย่างเช่น: เมื่อการเขียนโปรแกรมใน Haskell คุณจะใช้ชนิดตัวสร้างประเภทฟังก์ชั่นฟังก์ชั่นการสั่งซื้อที่สูงขึ้น ฯลฯ เพื่อออกแบบโปรแกรมของคุณไม่ใช่แนวคิดทฤษฎีหมวดหมู่ โดยสรุปเรามีระบบเลเยอร์ด้านล่าง (คำสั่งซื้อต่ำถึงสูง): หมวดหมู่ทฤษฎี -> ภาษาการเขียนโปรแกรม -> โปรแกรม ที่ชั้นโดยเฉพาะอย่างยิ่งคุณใช้แนวคิดของชั้นพื้นฐานทันที ความเข้าใจนี้ถูกต้องหรือไม่ ถ้าไม่ใช่และคุณเชื่อว่าในการออกแบบโปรแกรมเราสามารถใช้แนวคิดทฤษฎีหมวดหมู่ได้โดยตรงโปรดอ้างอิงบทความหรือบทความในบล็อกที่แสดงให้เห็น หมายเหตุ: โดยการออกแบบโปรแกรมฉันหมายถึงการออกแบบโปรแกรมตามแนวคิดที่แตกต่างกันเช่นการทำงานพร้อมกัน, การขนาน, ปฏิกิริยา, การส่งข้อความเป็นต้น

9
วิธีการจำลองการตายให้เหรียญยุติธรรม
สมมติว่าคุณได้รับเหรียญที่ยุติธรรมและคุณต้องการจำลองการแจกแจงความน่าจะเป็นของการโยนเหรียญตาย (หกด้าน) ซ้ำ ๆ ความคิดแรกของฉันคือการที่เราต้องเลือกที่เหมาะสมจำนวนเต็มเช่นว่า6m ดังนั้นหลังจากที่พลิกเหรียญครั้งที่เรา map จำนวนเข้ารหัสโดย K-ยาว bitstring เพื่อผลของการตายโดยการหารช่วงเป็น 6 ช่วงเวลาที่แต่ละความยาวเมตรอย่างไรก็ตามสิ่งนี้เป็นไปไม่ได้เนื่องจากมีสองสิ่งเป็นเพียงปัจจัยหลักเท่านั้น แต่ปัจจัยสำคัญของรวมถึงสาม ควรมีวิธีง่าย ๆ ในการทำเช่นนี้ใช่มั้ย2 k = 6 m k [ 0 , 2 k - 1 ] m 2 k 6 mk , มk,mk,m2k= 6 เมตร2k=6m2^k = 6mkkk[ 0 , 2k- 1 ][0,2k−1][0,2^k-1]ม.mm2k2k2^k6 ม6m6m

2
ปัญหา“ ผลิตภัณฑ์ชุดย่อย” เป็นปัญหาที่สมบูรณ์หรือไม่
ปัญหาผลรวมย่อยคือปัญหา NP-complete แบบคลาสสิก: เมื่อระบุรายการตัวเลขและเป้าหมายมีชุดย่อยของตัวเลขจากที่รวมเป็นหรือไม่k L kLLLkkkLLLkkk นักเรียนคนหนึ่งถามฉันว่าปัญหาที่เรียกว่า "ผลิตภัณฑ์ชุดย่อย" เป็นปัญหาที่เกิดขึ้นหรือไม่: รับรายการหมายเลขและเป้าหมายมีชุดย่อยของตัวเลขจากซึ่งผลิตภัณฑ์เป็นหรือไม่k L kLLLkkkLLLkkk ฉันทำการค้นหาบางอย่างและไม่สามารถหาแหล่งข้อมูลที่พูดคุยเกี่ยวกับปัญหานี้ได้แม้ว่าฉันอาจจะคิดถึงพวกเขาก็ตาม ปัญหาผลิตภัณฑ์ชุดย่อย NP-complete หรือไม่

3
ฉันควรเรียนรู้ปัญญาประดิษฐ์เมื่อใด [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดเมื่อปีที่แล้ว ตรงประเด็น: ฉันต้องการเรียนรู้ AI จริงๆ แต่ฉันต้องการคำแนะนำจากพวก CS ที่มีประสบการณ์ว่าเมื่อใดฉันควรเข้าสู่ปัญญาประดิษฐ์ จำเป็นต้องมีข้อกำหนดเบื้องต้นอะไรบ้างเพื่อให้ฉันเข้าใจแนวคิด AI ได้ดีขึ้น

5
แลมบ์ดาแคลคูลัสนอกการเขียนโปรแกรมการทำงาน
คำถามนี้ถูกย้ายจาก Theoretical Computer Science Exchange Exchange เนื่องจากสามารถตอบได้ใน Computer Science Stack Exchange อพยพ 7 ปีที่ผ่านมา ฉันเป็นนักศึกษามหาวิทยาลัยและตอนนี้เรากำลังศึกษาแลมบ์ดาแคลคูลัส อย่างไรก็ตามฉันยังคงมีเวลาเข้าใจยากว่าทำไมสิ่งนี้มีประโยชน์สำหรับฉัน ฉันรู้ว่าถ้าคุณเขียนโปรแกรมฟังก์ชั่นมากมายมันอาจจะมีประโยชน์ แต่ฉันคิดว่ามันไม่จำเป็นสำหรับการเรียนรู้การเขียนโปรแกรมฟังก์ชั่นคุณคิดอย่างไร? ประการที่สองมีการใช้แลมบ์ดาแคลคูลัสในขอบเขตของวิทยาศาสตร์คอมพิวเตอร์ แต่นอกเหนือจากภาษาโปรแกรมที่ใช้งานได้หรือไม่?

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