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

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

7
วิธีการตรวจสอบว่าสองสายเป็นพีชคณิตของกันและกันโดยใช้พื้นที่เพิ่มเติม O (1)?
ให้สองสายคุณจะตรวจสอบได้อย่างไรว่าพวกมันเป็นการเปลี่ยนแปลงซึ่งกันและกันโดยใช้พื้นที่ O (1)? ไม่อนุญาตให้ดัดแปลงสตริงใด ๆ หมายเหตุ: พื้นที่ O (1) สัมพันธ์กับทั้งความยาวสตริงและขนาดของตัวอักษร

2
การเรียงลำดับพีชคณิตที่มีองค์ประกอบไม่ตรงกับดัชนี± M
ฉันเพิ่งถูกถามถึงปัญหานี้ในการสัมภาษณ์อัลกอริทึมและไม่สามารถแก้ไขได้ กำหนดสองค่า N และ M คุณต้องนับจำนวนพีชคณิตของความยาว N (โดยใช้ตัวเลขตั้งแต่ 1 ถึง N) ซึ่งความแตกต่างที่แน่นอนระหว่างตัวเลขใด ๆ ในการเปลี่ยนแปลงและตำแหน่งในการเปลี่ยนแปลงไม่เท่ากับ M ตัวอย่าง - ถ้า N = 3 และ M = 1 ดังนั้น 1 2 3 และ 3 2 1 คือการเรียงสับเปลี่ยนที่ถูกต้อง แต่ 1 3 2 ไม่ถูกต้องเนื่องจากหมายเลข 3 อยู่ที่ตำแหน่ง 2 และความแตกต่างคือ = M ฉันลองใช้การเขียนโปรแกรม NxM Dynamic แต่ไม่สามารถเกิดซ้ำได้ซึ่งไม่นับการทำซ้ำ

1
อัลกอริทึมที่มีความซับซ้อน O (sqrt (N)) SPACE หรือไม่
มีอัลกอริทึมที่รู้จักกันดีสำหรับปัญหาที่เกิดขึ้นซึ่งต้องใช้ความซับซ้อนของ O (sqrt (N)) หรือไม่? ฉันรู้ว่าอัลกอริทึมที่มีความซับซ้อนครั้งใหญ่ที่มีอยู่

2
คำว่า“ การผลิต” นั้นมีความหมายเหมือนกันกับคำว่า“ กฎ” ในบริบทของวิทยาศาสตร์คอมพิวเตอร์อย่างไร
ฉันกำลังศึกษาภาษาทางการและระบบฐานการผลิต (ระบบฐานกฎ) และฉันสับสนเล็กน้อยว่าทำไมคำสองคำนี้ "การผลิต" และ "กฎ" หมายถึงสิ่งเดียวกันในบริบทมากมายในวิทยาการคอมพิวเตอร์ ในภาษาอังกฤษพวกเขาดูเหมือนจะไม่ได้หมายถึงสิ่งเดียวกัน ฉันไม่ใช่เจ้าของภาษา แต่ฉันรู้ว่ากฎหมายถึงสิ่งที่เราไม่ควรทำเมื่อพูดถึงผู้คนหรือสิ่งที่ซ้ำหลายครั้งจะให้ผลลัพธ์เดียวกันและเราบอกว่ามันทำงานได้ตามกฎบางอย่าง ( วิธีการทำงานที่กำหนดโดยโปรโตคอล / โพรซีเดอร์ที่เหมือนกันทุกครั้ง) การผลิตหมายถึงบางสิ่งที่แตกต่างออกไปอย่างสิ้นเชิง ... ขั้นตอนของสินค้าหรือซอฟท์แวร์ทางกายภาพที่กำลังทำ / ผลิตอยู่ การกระทำของการทำบางสิ่งบางอย่างทั้งทางกายภาพหรืองานศิลปะการเขียนการวาดภาพบางสิ่งบางอย่างที่ทำกับความสามารถทางร่างกายหรือจิตใจของใครบางคน เราบอกว่าสิ่งที่เฉพาะเจาะจงมีการผลิต อย่างไรก็ตามในวิทยาการคอมพิวเตอร์คำเหล่านี้ที่แสดงสิ่งที่แตกต่างอย่างสิ้นเชิงในภาษาอังกฤษหมายถึงสิ่งเดียวกันใน CS ข้อกำหนดนี้มีความคล้ายคลึงกันใน CS อย่างไร มีพจนานุกรมนิรุกติศาสตร์สำหรับวิทยาการคอมพิวเตอร์อยู่บ้างไหม พจนานุกรมที่บอกเราว่าคำศัพท์ทางวิทยาศาสตร์คอมพิวเตอร์เป็นอย่างไร BTW: ข้อเท็จจริงที่น่าสนใจ: ทั้งการผลิตและกฎไม่มีแท็กในไซต์ Stack Exchange นี้

2
ภาษายูนารีเป็นปกติถ้ามีเลขชี้กำลังเป็นฟังก์ชันเชิงเส้นหรือไม่?
ในขณะที่ทำงานที่ได้รับมอบหมายในปัจจุบันสำหรับภาษาทางการและหลักสูตรออโตมาตะฉันก็ติดอยู่กับแบบฝึกหัดที่เกี่ยวข้องกับภาษาเอก (ฉันหวังว่านั่นเป็นคำที่ถูกต้อง) เช่นภาษาที่สร้างจากตัวอักษรตัวเดียว ฉันไม่ต้องการถามเกี่ยวกับแบบฝึกหัดที่เฉพาะเจาะจง แต่ แต่เกี่ยวกับการคาดเดาทั่วไปที่ฉันได้ทำมา: ให้และL = { ฉ( n ) ∈ Σ * : n ∈ N 0 } การคาดเดาของฉันคือ: L เป็นปกติ⇔ ∃ x , y ที่∈ N 0 : F ( n ) = x ⋅ n + YΣ={a}Σ={a}\Sigma=\{a\}L={af(n)∈Σ∗:n∈N0}L={af(n)∈Σ∗:n∈N0}L=\{a^{f(n)}\in\Sigma^*:n\in\mathbb N_0\} L is regular⇔∃x,y∈N0:f(n)=x⋅n+yL is regular⇔∃x,y∈N0:f(n)=x⋅n+yL\text{ is regular}\Leftrightarrow …

3
จำเป็นหรือไม่ที่จะต้องกำหนดช่วงการเปลี่ยนภาพสำหรับตัวอักษรที่เป็นไปได้ทั้งหมดใน Deteriteic Automite
พรุ่งนี้เป็นการนำเสนอของฉันและฉันต้องการล้างแนวคิดของฉัน ... ฉันได้อ่านแล้วว่าใน DFA "สำหรับแต่ละรัฐควรกำหนดคำว่าสัญลักษณ์ (ตัวอักษร) ที่เป็นไปได้ทั้งหมด" สำหรับแต่ละรัฐกำหนดการเปลี่ยนสัญลักษณ์ที่เป็นไปได้ทั้งหมดที่บังคับใช้ใน DFA หรือไม่ หากไม่ใช่โปรดยกตัวอย่างหรือไม่

1
นี่เป็นวิธีทั่วไปในการแปลงกระบวนงานแบบเรียกซ้ำใด ๆ ไปเป็นการเรียกซ้ำแบบหางหรือไม่?
ดูเหมือนว่าฉันได้พบวิธีทั่วไปในการแปลงขั้นตอนการเรียกซ้ำใด ๆ เป็นการเรียกซ้ำแบบหาง: กำหนดกระบวนการย่อยผู้ช่วยด้วยพารามิเตอร์ "ผลลัพธ์" พิเศษ ใช้สิ่งที่จะนำไปใช้กับค่าส่งคืนของโพรซีเดอร์กับพารามิเตอร์นั้น เรียกขั้นตอนผู้ช่วยนี้เพื่อเริ่มต้น ค่าเริ่มต้นสำหรับพารามิเตอร์ "result" คือค่าสำหรับจุดออกของกระบวนการซ้ำเพื่อให้กระบวนการวนซ้ำผลลัพธ์เริ่มต้นจากจุดที่กระบวนการวนซ้ำเริ่มหดตัว ตัวอย่างเช่นต่อไปนี้เป็นขั้นตอนการเรียกซ้ำแบบดั้งเดิมที่จะทำการแปลง ( SICP แบบฝึกหัด 1.17 ): (define (fast-multiply a b) (define (double num) (* num 2)) (define (half num) (/ num 2)) (cond ((= b 0) 0) ((even? b) (double (fast-multiply a (half b)))) (else (+ (fast-multiply a (- …

1
ทดสอบว่าข้อพิสูจน์โดยพลการเป็นวงกลมหรือไม่?
ฉันกำลังคิดเกี่ยวกับการพิสูจน์และวิ่งเข้าไปในการสังเกตที่น่าสนใจ ดังนั้นการพิสูจน์จึงเทียบเท่ากับโปรแกรมผ่านทาง Curry-Howard Isomorphism และการพิสูจน์แบบวงกลมสอดคล้องกับการเรียกซ้ำแบบไม่สิ้นสุด แต่เรารู้จากปัญหาการหยุดชะงักที่โดยทั่วไปแล้วการทดสอบว่าโปรแกรมที่เกิดซ้ำโดยพลการเกิดขึ้นซ้ำ ๆ ตลอดไปนั้นไม่สามารถตัดสินใจได้ โดย Curry-Howard นั่นหมายความว่าไม่มี "ตัวตรวจสอบการพิสูจน์" ที่สามารถตรวจสอบว่าการพิสูจน์ใช้การให้เหตุผลแบบวงกลมหรือไม่? ฉันคิดเสมอว่าการพิสูจน์ควรประกอบด้วยขั้นตอนที่ตรวจสอบได้ง่าย (ซึ่งสอดคล้องกับการใช้งานของกฎการอนุมาน) และการตรวจสอบทุกขั้นตอนจะช่วยให้คุณมั่นใจว่าข้อสรุปดังต่อไปนี้ แต่ตอนนี้ฉันสงสัยว่า: จริง ๆ แล้วมันเป็นไปไม่ได้ที่จะเขียนตัวตรวจสอบเพื่อพิสูจน์เพราะไม่มีวิธีใดที่จะแก้ไขปัญหาการหยุดชะงักและตรวจหาเหตุผลแบบวงกลมได้?

1
ฟังก์ชันใดที่สามารถคำนวณนิพจน์แคลคูลัสได้
นิพจน์ combinator (สมมุติในพื้นฐาน SK) อาจถูกคิดว่าเป็นฟังก์ชั่นที่แมปนิพจน์แคลคูลัสของ combinator กับนิพจน์แคลคูลัสของ combinator นั่นคือเราสามารถนึกถึงนิพจน์เป็นฟังก์ชันX : L → Lโดยที่Lคือชุดของนิพจน์ combinator ที่ถูกต้องทั้งหมดในไวยากรณ์ SK การแมปนี้ดำเนินการโดยใช้อินพุตกับนิพจน์แล้วลดเป็นรูปแบบปกติเพื่อรับเอาต์พุตXXXX:L→LX:L→LX:L \to LLLL ตั้งแต่พื้นฐาน SK เป็นทัวริงสมบูรณ์หนึ่งอย่างไร้เดียงสาอาจจะคิดว่ามีอยู่หนึ่ง SK แสดงออกว่าการดำเนินการใด ๆ ฟังก์ชั่นคำนวณจากLเพื่อL อย่างไรก็ตามนี่ไม่ใช่กรณีที่ชัดเจนเนื่องจากผลลัพธ์ของการลดลงจะอยู่ในรูปแบบปกติเสมอ ซึ่งหมายความว่าไม่มีทางที่นิพจน์จะมีเอาต์พุตที่ไม่อยู่ในรูปแบบปกติXXXLLLLLL ดังนั้นฉันคิดว่านิพจน์ SK แคลคูลัสเป็นการจับคู่กับL ′โดยที่L ′คือเซตของนิพจน์ SK ในรูปแบบปกติ มันเป็นกรณีที่สำหรับแผนที่คำนวณใด ๆF : L ' → L 'มีการแสดงออก SK Xที่ใช้แผนที่นี้อย่างไร? หรือมีข้อ จำกัด เพิ่มเติมเกี่ยวกับชุดฟังก์ชันที่สามารถคำนวณโดยนิพจน์แคลคูลัสของ combinator ด้วยวิธีนี้หรือไม่L′L′L'L′L′L'L′L′L'f:L′→L′f:L′→L′f:L'\to …

2
คำขออ้างอิง: ทฤษฎีหมวดหมู่ตามที่ใช้กับระบบการพิมพ์
ฉันคอยฟังว่าจะต้องเรียนรู้ทฤษฎีหมวดหมู่อย่างไรเพื่อให้เข้าใจทฤษฎีภาษาโปรแกรมอย่างแท้จริง จนถึงตอนนี้ฉันได้เรียนรู้ PL จำนวนมากโดยไม่ต้องก้าวเข้าสู่หมวดหมู่ อย่างไรก็ตามฉันคิดว่ามันเป็นเวลาที่จะก้าวกระโดดเพื่อดูสิ่งที่ฉันได้หายไป น่าเสียดายที่ไม่มีแหล่งข้อมูลใดที่ฉันสามารถค้นหาได้ทำการเชื่อมต่อกับระบบประเภทหรือการเขียนโปรแกรม พวกเขาบอกว่าเป็นการแนะนำทฤษฎีหมวดหมู่สำหรับนักวิทยาศาสตร์คอมพิวเตอร์ แต่หลังจากนั้นก็เปลี่ยนไปเป็นเรื่องไร้สาระทั่วไป ฉันเดาคำถามของฉันเป็นสองเท่าจริง: ทฤษฎีหมวดหมู่จำเป็นสำหรับการทำความเข้าใจ "แนวคิดที่ลึกซึ้ง" ใน PL หรือไม่? แหล่งที่มาที่อธิบายทฤษฎีหมวดหมู่จากมุมมองของแอปพลิเคชันเชิงปฏิบัติเพื่อพิมพ์ระบบและการเขียนโปรแกรมคืออะไร จนถึงตอนนี้สิ่งที่ไกลที่สุดที่ฉันได้รับคือความคิดที่คลุมเครือของ functors (ซึ่งดูเหมือนจะไม่เกี่ยวข้องกับ functors ใน ML เท่าที่ฉันจะบอกได้) ฉันกลัวสิ่งที่เป็นนามธรรมฉันจะต้องเก็บไว้ในหัวของฉันที่จะเข้าใจพระจากมุมมองตามทฤษฎีหมวดหมู่

2
หาก P = NP จะมี cryptosystems ที่จะต้องใช้เวลา n ^ 2 ในการทำลายหรือไม่?
ถ้า P ทำตัวเท่ากับ NP มันจะเป็นไปได้ไหมที่จะออกแบบระบบเข้ารหัสโดยใช้อัลกอริธึมการเข้ารหัสที่ดีที่สุดใช้เวลาเป็นสองเท่าของอัลกอริธึมการเข้ารหัสและถอดรหัสที่ถูกต้องหรือไม่ มีอัลกอริทึมดังกล่าวอยู่แล้วหรือไม่?

3
ปัญหา จำกัด ใด ๆ สามารถอยู่ใน NP-Complete ได้หรือไม่?
อาจารย์ของฉันทำคำสั่ง ปัญหาอัน จำกัด ใด ๆ ไม่สามารถทำให้สมบูรณ์ได้ เขากำลังพูดถึงของซูโดกุในเวลาที่พูดอะไรบางอย่างตามเส้นที่สำหรับซูโดกุ 8x8 มีวิธีแก้ปัญหาที่ จำกัด แต่ฉันจำไม่ได้ว่าเขาพูดอะไร ฉันจดบันทึกย่อที่ฉันยกมา แต่ก็ยังไม่เข้าใจจริงๆ Sudoku ของ NP นั้นสมบูรณ์ถ้าฉันไม่ผิด ปัญหากลุ่มนั้นยังเป็นปัญหาแบบ NP-Complete และถ้าฉันมีปัญหาแบบกลุ่ม 4 คนนี่เป็นปัญหาที่ไม่แน่นอนที่เป็นปัญหาแบบ NP-Complete หรือไม่
13 np-complete  np 

3
หน่วยความจำΘ (1) หมายถึงอะไร
ฉันมีคำจำกัดความของอัลกอริทึมแบบ in-situ จากอาจารย์ แต่ฉันไม่เข้าใจ อัลกอริธึมในแหล่งกำเนิดอ้างถึงอัลกอริธึมที่ทำงานกับหน่วยความจำΘ (1) นั่นหมายความว่าอย่างไร?

3
อะไรคือความแตกต่างระหว่างเครือข่ายประสาทหลายชั้นและเครือข่ายประสาทหลายชั้น?
เมื่อไหร่ที่เราบอกว่าเครือข่ายประสาทเทียมเป็นPerceptron หลายชั้น ? และเมื่อเราจะพูดได้ว่าเครือข่ายประสาทเทียมเป็นหลาย ? คำว่าperceptronเกี่ยวข้องกับกฎการเรียนรู้เพื่ออัปเดตน้ำหนักหรือไม่ หรือเกี่ยวข้องกับหน่วยเซลล์ประสาท

1
ถ้าไม่ใช่พหุนามหรือเลขชี้กำลังแล้วฟังก์ชันนี้เรียกว่าอะไร?
ฉันเพิ่งพบประโยคนี้ในหน้า 6 ของ Garey และ Johnson "คอมพิวเตอร์และการใช้งานไม่ได้" ขั้นตอนวิธีการใด ๆ ที่มีเวลาซับซ้อนฟังก์ชั่นไม่สามารถกระโดดดังนั้นจะเรียกว่าอัลกอริทึมเวลาชี้แจง (แม้ว่ามันควรจะตั้งข้อสังเกตว่าคำนิยามนี้รวมถึงเวลาที่ไม่ใช่พหุนามฟังก์ชั่นความซับซ้อนบางอย่างเช่นซึ่งไม่ได้รับการยกย่องว่าเป็นปกติชี้แจง ฟังก์ชั่น).nlognnlog⁡nn^{\log n} คำถามของฉันดังต่อไปนี้ ถ้าไม่ใช่พหุนามและเลขชี้กำลังแล้วฟังก์ชันนี้เรียกว่าอะไร? สิ่งนี้มีชื่อหรือกรณีพิเศษหรือไม่?nlognnlog⁡nn^{\log n} ขอขอบคุณ.

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