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

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

2
การต่อกันของสองภาษาปกติไม่ชัดเจนเมื่อใด
ได้รับภาษาและB , ขอบอกว่าการเรียงต่อกันของพวกเขาBเป็นที่ชัดเจนถ้าสำหรับทุกคำW ∈ Bมีอีกหนึ่งการสลายตัวW = ขกับ∈และข∈ Bและคลุมเครืออย่างอื่น (ฉันไม่รู้ว่ามีคำศัพท์ที่สร้างขึ้นสำหรับสถานที่ให้บริการนี้หรือไม่ - ยากที่จะค้นหา!) เป็นตัวอย่างที่น่าสนใจการต่อเชื่อม{ ε , a }กับตัวเองนั้นคลุมเครือ ( w = aAAABBBABABABw∈ABw∈ABw \in ABw=abw=abw = aba∈Aa∈Aa \in Ab∈Bb∈Bb \in B{ε,a}{ε,a}\{\varepsilon, \mathrm{a}\} ) แต่การต่อกันของ { a }กับตัวเองนั้นไม่คลุมเครือw=a=εa=aεw=a=εa=aεw = \mathrm{a} = \varepsilon \mathrm{a} = \mathrm{a} \varepsilon{a}{a}\{\mathrm{a}\} มีอัลกอริทึมสำหรับการตัดสินใจว่าการต่อเชื่อมภาษาสองภาษาปกติไม่คลุมเครือหรือไม่?

1
การแก้ปัญหาไม่ได้ของร่างกาย N เท่ากับปัญหาการหยุดงานหรือไม่
ไม่มีวิธีการแก้ปัญหาการวิเคราะห์ทั่วไปสำหรับปัญหา n-body ที่สามารถสร้างฟังก์ชั่นการวิเคราะห์ซึ่งสามารถใช้เพื่อให้สถานะของระบบ n-body ในเวลาใดก็ได้โดยมีความแม่นยำแน่นอน อย่างไรก็ตามมีบางกรณีพิเศษของระบบ n-body ที่ฟังก์ชั่นการวิเคราะห์เป็นที่รู้จักกัน ในทำนองเดียวกันไม่มีอัลกอริธึมทั่วไปที่สามารถทำนายผลลัพธ์ของเครื่องทัวริงได้ตามอำเภอใจ แม้ว่าจะมีเครื่องกลึงหลายประเภทซึ่งสามารถกำหนดให้หยุดหรือทำงานได้ตลอดไป ผลลัพธ์ทั้งสองนี้เทียบเท่ากันหรือไม่ การพิสูจน์ข้อใดข้อหนึ่งบ่งบอกถึงอีกข้อหนึ่งหรือไม่? เครื่องจักรเวทย์มนตร์ที่สามารถแก้ปัญหาการหยุดชะงักจะสามารถทำนายสถานะของระบบ n-body ได้อย่างแม่นยำหรือไม่? หรือในทางกลับกันโซลูชันการวิเคราะห์ทั่วไปสำหรับปัญหา n-body จะช่วยให้เราสามารถตัดสินใจปัญหาการหยุดชะงักในเครื่องทัวริงโดยพลการได้หรือไม่? การคาดเดาครั้งแรกของฉันเกี่ยวกับวิธีการเข้าถึงสิ่งนี้คือการแสดงให้เห็นว่าระบบ n-body ภายใต้แรงโน้มถ่วงเป็นทัวริงที่สมบูรณ์ ฉันสงสัยว่ามันกำลังพิจารณาว่าเอกภพทัวริงสมบูรณ์และดำเนินงานเป็นหลักภายใต้แรงโน้มถ่วง (และกองกำลังอื่น ๆ ที่มีพฤติกรรมคล้ายกัน) แต่ฉันไม่รู้ว่าจะพิสูจน์เรื่องนี้ได้อย่างไร แต่ฉันสงสัยว่าวิธีการดังกล่าวมีความเพียงพอเมื่อพิจารณาว่าเป็นไปได้ (แม้ว่าฉันคิดว่าไม่น่าจะเป็นไปได้) ว่าการขาดวิธีการแก้ปัญหาการวิเคราะห์ทั่วไปสำหรับปัญหาร่างกาย n อาจเป็นอิสระจากการทำทัวริงสมบูรณ์ แก้ไข: หลังจากอ่านคำถามที่เกี่ยวข้องอื่น ๆ แล้วฉันรู้ว่าจำนวนมิติที่แรงโน้มถ่วงกำลังทำงานอาจเกี่ยวข้องกับคำถาม ฉันถามเรื่องแรงโน้มถ่วงเป็นพิเศษใน 3 มิติของอวกาศ แต่ให้ข้อเท็จจริงดังกล่าวตามที่คุณต้องการอย่างน้อย 3 กฎที่จะทำให้เครื่องทัวริงสากลและแรงโน้มถ่วงใน 2 มิติจะมีเพียงกฎหมายผกผันแทนกฎหมายตารางผกผันα 1 / R 2ส่งผลให้ในไม่มีวงโคจรปิด , ฉันสามารถเห็นว่ามันกลายเป็นว่าแรงโน้มถ่วงในสามมิติคือทัวริงสมบูรณ์ แต่ไม่ใช่ในสองหรือหนึ่ง∝ …

1
เป็นเรื่องที่ตัดสินใจได้หรือไม่ว่าหุ่นยนต์แบบกดลงจดจำภาษาปกติที่ให้มาได้หรือไม่?
ปัญหาที่ว่าออโตเมติกสองตัวที่รับรู้ภาษาเดียวกันนั้นไม่สามารถตัดสินใจได้ ปัญหาที่ว่าหุ่นยนต์แบบกดลงจะจดจำภาษาที่ว่างเปล่านั้นสามารถตัดสินใจได้หรือไม่ดังนั้นมันจึงสามารถตัดสินใจได้ว่าจะรับรู้ภาษาที่มีขอบเขต จำกัด หรือไม่ ไม่สามารถตัดสินใจได้ว่าภาษาที่ยอมรับโดยหุ่นยนต์แบบกดลงเป็นปกติหรือไม่ แต่ ... ... มันเป็นเรื่องที่ตัดสินใจได้หรือไม่ว่าหุ่นยนต์แบบกดลงจะจดจำภาษาปกติที่กำหนดไว้หรือไม่ ในกรณีที่คำตอบคือไม่ปัญหากลายเป็น decidable ถ้าภาษาปกติที่กำหนดมีความสูงของดาว 111หรือไม่

3
มีมุมมองที่ซับซ้อนของทฤษฎีบทของ Galois หรือไม่?
ทฤษฎีบทของ Galois บอกอย่างมีประสิทธิภาพว่าเราไม่สามารถแสดงรากของพหุนามระดับ = 5 โดยใช้ฟังก์ชันเหตุผลของสัมประสิทธิ์และอนุมูล - นี่ไม่สามารถอ่านได้ว่าเป็นเพราะพหุนามไม่มีอัลกอริธึมกำหนดที่จะค้นหารากหรือไม่ ตอนนี้พิจารณาคำถามการตัดสินใจของรูปแบบ "ให้จริงฝังรากพหุนามและหมายเลข k เป็นครั้งที่สามและรากสูงสุดที่สี่ของอย่างน้อยในช่องว่างของ k หรือไม่?"pppppp ใบรับรองการพิสูจน์สำหรับคำถามการตัดสินใจนี้จะเป็นชุดของรากของพหุนามนี้และนั่นคือใบรับรองสั้น ๆ และด้วยเหตุนี้ดูเหมือนว่า BUT ไม่ใช่ทฤษฎีบทของ Galois ที่บอกว่าไม่มีอัลกอริธึมที่กำหนดขึ้นเพื่อค้นหาใบรับรองสำหรับการตัดสินใจนี้ คำถาม? (และคุณสมบัตินี้ถ้าเป็นจริงออกกฎอัลกอริทึมใด ๆ ในการตัดสินใจตอบคำถามนี้) NPNPNP คำถามการตัดสินใจนี้มีความซับซ้อนในระดับใด? คำถามที่ทำให้ NP สมบูรณ์ทั้งหมดที่ฉันเคยเห็นมีอัลกอริธึมเวลาเอ็กซ์โพเนนเชียลเล็กน้อยสำหรับแก้ปัญหา ฉันไม่ทราบว่าสิ่งนี้คาดว่าจะเป็นคุณสมบัติที่ควรเป็นจริงสำหรับคำถามที่ตอบปัญหาทั้งหมด สำหรับคำถามการตัดสินใจครั้งนี้ดูเหมือนจะไม่เป็นจริง

1
แพ้ในคอนเสิร์ต "ทิศทางเดียว"
คุณและเพื่อนสูญเสียกันและกันในคอนเสิร์ตและไม่แน่ใจว่าใครในอนาคตข้างหน้า อย่างเป็นทางการแต่ละคนอยู่ในพิกัดจำนวนเต็มบางส่วนและอาจเดินไปทางพิกัดที่สูงขึ้นหรืออยู่ในสถานที่ สมมติว่าคุณและเพื่อนของคุณกำลังติดตามอัลกอริทึมที่แน่นอน (และไม่คุณอาจไม่พูดว่า "if (name ==" R B ") ทำอะไร :)) และระยะทางเริ่มต้นระหว่างคุณสองคนคือ (ซึ่งไม่ใช่ รู้จักคุณ)xxx อัลกอริธึมที่ลดระยะทางเดินที่คาดไว้ให้น้อยที่สุดจนกว่าคุณและเพื่อนของคุณจะพบกันคืออะไร คุณอาจคิดว่าทั้งเพื่อนและตัวคุณเองกำลังเคลื่อนไหวด้วยความเร็วคงที่เท่ากัน อัลกอริธึมตัวอย่างง่าย ๆ จะเป็นดังนี้: ที่เวที (เริ่มต้นจาก0 ):nnn000 เดินขั้นตอนในการงาน wp ขวา13n3n3^nหรือรอเวลา3nหน่วยเป็นอย่างอื่น1212\frac{1}{2}3n3n3^n หากต้องการดูขั้นตอนวิธีการนี้จะทำให้เพื่อน ๆ พบกับความน่าจะเป็นที่ 1 พิจารณาสิ่งที่เกิดขึ้นในขั้นตอน ) แม้ว่าเพื่อนที่เป็นxก้าวไปข้างหน้าเสมอเดินและอื่น ๆ มักจะอยู่ในสถานที่ที่ระยะห่างระหว่างทั้งสองจะเป็น: x + 1 + 3 + 9 + ... + 3 บันทึก3 x = 2 …

2
วิธีการให้คะแนนฝ่ายตรงข้ามคอมพิวเตอร์ที่ต้องการความสมดุล
คำถามนี้เกี่ยวกับวิธีการที่คู่ต่อสู้ของคอมพิวเตอร์ที่ฉันสร้างขึ้นและกำลังถูกใช้อยู่หรือกำลังวางแผนที่จะใช้ในเกมคอมพิวเตอร์หลายเกม พื้นหลัง เมื่อปีที่แล้วเมื่อพยายามปรับปรุงฝ่ายตรงข้ามคอมพิวเตอร์สำหรับเกมที่เรียกว่า "Minesweeper Flags" (คำอธิบายสั้น ๆ : Minesweeper เวอร์ชันที่มีผู้เล่นหลายคนแบบเลี้ยวตามที่คุณต้องใช้เวลามากกว่าเหมืองของฝ่ายตรงข้าม)ฉันเปลี่ยนวิธีการทำงานของอัลกอริทึม . แทนที่จะใช้วิธีเช่น if-else-if-else ฉันใช้ชุดของ "ผู้ทำสกอร์" ที่มีน้ำหนักที่ระบุเพื่อกำหนดว่าการเคลื่อนไหวที่ดีที่สุดคืออะไร คุณอาจคิดว่าสำหรับเกมอย่าง Minesweeper Flags เป็นเพียงการเคลื่อนที่ที่ให้โอกาสในการขุด แต่มันไม่ง่ายอย่างนั้น การย้ายที่คอมพิวเตอร์จะทำมักขึ้นอยู่กับฟีเจอร์ต่าง ๆ สำหรับการย้ายเฉพาะในสถานะเกมปัจจุบัน ตัวอย่างของคุณสมบัติ: ความน่าจะเป็นของการเคลื่อนไหวนี้ให้คะแนนเหมืองคืออะไร? ความน่าจะเป็นที่จะเปิดเผยสิ่งใด ๆ กับคู่ต่อสู้ของฉันที่นี่คืออะไร คำอธิบายของระบบ ระบบทำงานโดยทั่วไปดังนี้: "ผู้ทำประตูก่อน": ทำการวิเคราะห์ล่วงหน้าบางอย่างสำหรับสถานะเกมปัจจุบัน (ในแง่ของ Minesweeper Flags นี่เป็นปกติ: การคำนวณความน่าจะเป็นทั้งหมด) "Scorers": ชุดของผู้ทำประตูธรรมดาจะถูกถามเพื่อกำหนดคะแนนสำหรับการเคลื่อนไหวที่เป็นไปได้แต่ละครั้งผู้ทำคะแนนแต่ละคนจะใช้คะแนนตามเกณฑ์ของตัวเอง ผู้ทำคะแนนสามารถตรวจสอบผลลัพธ์ของการวิเคราะห์ล่วงหน้าที่ทำ คะแนนที่คำนวณในขั้นตอนข้างต้นจะถูกนำมารวมเข้าด้วยกันและกำหนดให้เป็นคะแนนสำหรับการย้าย การเคลื่อนไหวจะถูกจัดเรียงตามคะแนนของพวกเขาและจัดอันดับเพื่อให้การเคลื่อนไหวทั้งหมดที่มีคะแนนเดียวกันได้รับอันดับเดียวกัน "Post-scorers": ผลลัพธ์ของข้างต้นสามารถส่งไปยัง "Post-scorers" ที่มีความเป็นไปได้ที่จะแก้ไขคะแนนของฟิลด์ใด ๆ ในแบบที่พวกเขาต้องการตามกฎของโพสต์ - …

1
ความแตกต่างระหว่างโมเดล Actor และกระบวนการสื่อสารต่อเนื่อง (CSP)
เมื่อเรามองไปที่นักแสดงรุ่นและการสื่อสารตามลำดับกระบวนการเราจะเห็นว่าพวกเขาทั้งสองพยายามที่จะทำเห็นพ้องด้วยขึ้นอยู่กับข้อความผ่านแต่พวกเขามีความแตกต่างกัน (เราเห็นการใช้งานCSP Modelในgoroutinesของgo-lang (และcorejas ของ Clojure ) และ Actor Model ในชุดเครื่องมือAkka ของ Scala ) ฉันกำลังพยายามหารายการความแตกต่างง่ายๆระหว่าง Actor Model และ CSP จนถึงตอนนี้ฉันมี: การส่งข้อความของนักแสดงเป็นแบบอะซิงโครนัสการส่งผ่านข้อความ CSP นั้นเป็นแบบซิงโครนัส นักแสดงcomposable , ซีเอสพีไม่ได้ (จำเป็น) นักแสดงมักจะมีขอบเขตที่ไม่ใช่ขอบเขตเสมอ CSP อาจมีขอบเขตหรือไม่ จำกัด ขอบเขต นักแสดงมีตัวแปรโครงสร้างในขณะที่ CSP มีโครงสร้างแบบคงที่ นักแสดงมีหลักการของท้องที่ CSP ไม่มีท้องที่ นักแสดงได้รับการออกแบบตามพฤติกรรมของพวกเขา CSP ไม่จำเป็นต้องมีสิ่งนี้ ถูกต้องหรือไม่ มีอะไรฉันหายไปไหม สมมติฐาน เมื่อฉันพูดว่า 'model model' - ฉันหมายถึงพื้นฐานทางทฤษฎีที่อยู่เบื้องหลังการใช้งานในกรอบ Akka …

2
ฮิวริสติกที่ยอมรับได้ช่วยให้มั่นใจได้ว่าเป็นทางออกที่ดีที่สุดได้อย่างไร
เมื่อใช้ A * (หรืออัลกอริทึมการค้นหาเส้นทางที่ดีที่สุดอื่น ๆ ) เราบอกว่าการฮิวริสติกที่ใช้ควรยอมรับได้นั่นคือไม่ควรประเมินค่าความยาวของเส้นทางการแก้ปัญหาที่แท้จริง (หรือย้าย) ฮิวริสติกที่ยอมรับได้ช่วยให้มั่นใจได้ว่าเป็นทางออกที่ดีที่สุดได้อย่างไร ฉันกำลังมองหาคำอธิบายที่ใช้งานง่าย หากคุณต้องการคุณสามารถอธิบายการใช้ฮิวริสติกระยะทางแบบแมนฮัตตันของปริศนา 8 ตัว

2
การวิจารณ์เกี่ยวกับประสิทธิภาพของ HTM ​​คืออะไร
ฉันเพิ่งเรียนรู้เกี่ยวกับการมีอยู่ของหน่วยความจำชั่วคราวเชิงลำดับชั้น (HTM)นี้ ฉันได้อ่านเอกสารลำดับชั้นของหน่วยความจำชั่วคราว: แนวคิดทฤษฎีและคำศัพท์ (โดย Jeff Hawkins และ Dileep George) ซึ่งดูเหมือนจะค่อนข้างง่ายต่อการเข้าใจ แต่ธงแดงหนึ่งคือเอกสารไม่ได้ผ่านการตรวจสอบโดยเพื่อนหรือพยายามอธิบายว่าทำไมจึงควร ทำงานในรายละเอียด ฉันพยายามมองหาแหล่งข้อมูลอิสระบางแห่ง ฉันพบเอกสารสองสามฉบับที่เปรียบเทียบประสิทธิภาพกับเอกสารอื่น แต่ไม่มีใครอธิบายว่าทำไมจึงมีประสิทธิภาพดี (หรือไม่) ฉันสังเกตเห็นความคิดเห็นบางส่วนที่อ้างว่าถูกผู้เชี่ยวชาญด้านดูถูก แต่ฉันไม่สามารถหาคำวิจารณ์ที่แท้จริงได้ การวิจารณ์เกี่ยวกับประสิทธิภาพของ HTM ​​คืออะไร เนื่องจาก HTM มีความหมายว่าเป็นคำทั่วไปคำวิจารณ์เฉพาะโดเมนใด ๆ ควรเกี่ยวข้องกับปัญหาพื้นฐานมากขึ้น นอกจากนี้ยังมีข้อมูลการฝึกอบรมจำนวนมากที่ใช้งานได้เพียงพอสำหรับการฝึกซ้อมหลายเดือน โดยทั่วไปการวิพากษ์วิจารณ์เกี่ยวกับขนาดหรือความยาวของการฝึกอบรมไม่เกี่ยวข้อง

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

2
มีวิธีแก้ปัญหาที่เร็วกว่าสำหรับปัญหา Great Wall Jam ของ Google Code หรือไม่
ลองพิจารณาคำถามรอบรหัส 1C ของ Google Jamต่อไปนี้: กำแพงเมืองจีนเริ่มออกเป็นสายที่ไม่มีที่สิ้นสุดที่ความสูงในสถานที่ทั้งหมดเป็น0000 ชนเผ่าจำนวนหนึ่ง ,จะโจมตีกำแพงตามพารามิเตอร์ต่อไปนี้ - วันเริ่มต้น, , กำลังเริ่มต้น , พิกัดทิศตะวันตกเริ่มต้น,และพิกัดทิศตะวันออกเริ่มต้น, . นี้การโจมตีครั้งแรกเกิดขึ้นในวันในช่วงที่แข็งแรงSหากมีส่วนใดของกำแพงภายในที่มีส่วนสูงการโจมตีจะสำเร็จและในตอนท้ายของวันกำแพงจะถูกสร้างขึ้นเพื่อให้ส่วนใดส่วนหนึ่งของมันภายในของความสูงนั้นจะอยู่ที่ความสูงยังไม่มีข้อความยังไม่มีข้อความNยังไม่มีข้อความ≤ 1,000ยังไม่มีข้อความ≤1000N \le 1000DDDSSSWWWD [ W , E ] S [ W , E ] &lt; S [ W , E ] &lt; S SEEEDDD[ ว, E][W,E][W,E]SSS[W,E][W,E][W,E]&lt;S&lt;S< S[W,E][W,E][W,E]&lt;S&lt;S< SSSS (หรือมากกว่านั้นหากการโจมตีอื่น ๆ ในวันนั้นโจมตีกลุ่มเดียวกันด้วยความแข็งแกร่ง )S′&gt;SS′&gt;SS' > S …

1
การแปลงฝาปิดโดยพลการให้เป็นฝาครอบจุดสุดยอด
ป.ร. ให้ไว้เป็นภาพถ่ายกราฟและปล่อยแสดงฝังในเครื่องบินเซนต์ขอบแต่ละมีความยาว1นอกจากนี้ฉันมีชุดของจุดที่แต่ละจุดที่มีอยู่ใน{G} นอกจากนี้ยังถือสำหรับจุดใด ๆในว่ามีอยู่กับระยะทางที่จะเนื้อที่ที่หนึ่งมากที่สุด (ระยะทางวัดเป็นระยะทางที่สั้นที่สุดภายใน )G=(V,E)G=(V,E)G=(V,E)GG\mathcal{G}111CCCc∈Cc∈Cc \in CGG\mathcal{G}pppGG\mathcal{G}c∈Cc∈Cc \in CpppGG\mathcal{G} ฉันต้องการโต้แย้งว่าเนื่องจากที่มีเงื่อนไขข้างต้นเก็บไว้ฉันสามารถแปลงให้เป็นจุดสุดยอดหรือทำให้แตกต่างแปลงเป็นของ cardinality เดียวกันกับCCCC′C′C'c∈C′c∈C′c \in C'ถูกวางใน ที่ จุดสุดยอดของGและC 'ยังคงครอบคลุมGGG\mathcal{G}GGGC′C′C'GGG แนวทางของฉันคือปรับขอบและเลื่อนจุดในที่จุดสุดยอดของส่วนโค้ง แต่จนถึงขณะนี้ผมไม่ได้หาทิศทางที่ถูกต้องที่ทำให้C 'จากCCCCC′C′C'CCC มีใครมีความคิดบ้างไหม?

2
สีต้นไม้ไบนารีให้เป็นต้นไม้สีแดงดำ
คำถามสัมภาษณ์ที่พบบ่อยคือการให้อัลกอริทึมเพื่อตรวจสอบว่าต้นไม้ไบนารีที่กำหนดมีความสูงสมดุล (นิยามของต้นไม้ AVL) ฉันสงสัยว่าถ้าเราสามารถทำอะไรที่คล้ายกับต้นไม้สีแดงดำ ได้รับไบนารีต้นไม้ที่ไม่มีการสุ่มสี (พร้อม NULL nodes) มีอัลกอริทึม "เร็ว" ซึ่งสามารถกำหนดได้ว่าเราสามารถทำสี (และค้นหาการระบายสี) โหนดแดง / ดำเพื่อให้พวกเขาตอบสนองคุณสมบัติทั้งหมดของต้นไม้สีแดง - ดำ (คำจำกัดความในคำถามนี้)? ความคิดเริ่มแรกคือเราสามารถเอาโหนด NULL ออกและลองตรวจสอบซ้ำ ๆ ว่าต้นไม้ที่เกิดขึ้นนั้นสามารถเป็นต้นไม้สีแดงดำได้หรือไม่ แต่ดูเหมือนจะไม่ไปไหนเลย ฉันทำเว็บ (สั้น ๆ ) เพื่อค้นหาเอกสาร แต่ดูเหมือนจะไม่พบสิ่งใดที่ดูเหมือนจะจัดการกับปัญหานี้ เป็นไปได้ว่าฉันขาดอะไรง่ายๆ

3
ข้อ จำกัด ของออโตมาตะกับเครื่องสถานะ จำกัด ต่างกันอย่างไร?
ฉันใช้ FSM ในการออกแบบวงจรดิจิตอลตามลำดับ แต่ฉันไม่คุ้นเคยกับ Finite Automata ใครสามารถช่วยฉันในการทำความเข้าใจความแตกต่าง 'พื้นฐาน' ระหว่างสองคนนี้ได้หรือไม่?

3
เพิ่มคีย์และคีย์ลดในไบนารีมินฮีป
ในการสนทนาจำนวนมากของไบนารีฮีปปกติจะมีการแสดงคีย์ลดลงเพียงคีย์ว่าเป็นการดำเนินการที่ได้รับการสนับสนุนสำหรับมินิฮีป ยกตัวอย่างเช่น CLR บทที่ 6.1 และหน้าวิกิพีเดียนี้ เหตุใดจึงไม่เพิ่มรหัสปกติสำหรับ min-heap ฉันคิดว่าเป็นไปได้ที่จะทำเช่นนั้นใน O (ความสูง) โดยการสลับองค์ประกอบที่เพิ่มขึ้น (x) ซ้ำ ๆ โดยใช้ลูกน้อยที่สุดจนกว่าจะไม่มีลูกใดของมันใหญ่กว่า x เช่น IncreaseKey(int pos, int newValue) { heap[pos] = newValue; while(left(pos) &lt; heap.Length) { int smallest = left(pos); if(heap[right(pos)] &lt; heap[left(pos)]) smallest = right(pos); if(heap[pos] &lt; heap[smallest]) { swap(smallest, pos); pos= smallest; } else …

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