คำถามติดแท็ก algorithms

ในคณิตศาสตร์และวิทยาการคอมพิวเตอร์อัลกอริทึมเป็นวิธีที่มีประสิทธิภาพที่แสดงเป็นรายการ จำกัด ของคำแนะนำที่กำหนดไว้อย่างดีสำหรับการคำนวณฟังก์ชัน อัลกอริทึมที่ใช้สำหรับการคำนวณการประมวลผลข้อมูลและการใช้เหตุผลอัตโนมัติ

4
ทักษะคณิตศาสตร์เบื้องต้นสำหรับหนังสือ Introduction to Algorithms (CLRS) หนังสือ [ปิด]
ฉันมีความรู้เกี่ยวกับอัลกอริทึมพื้นฐานแล้ว ตอนนี้ผมวางแผนที่จะศึกษาขั้นตอนวิธีการล่วงหน้ามากขึ้นและฉันตัดสินใจไปกับรู้เบื้องต้นเกี่ยวกับอัลกอริทึม ฉันไม่แน่ใจฉันต้องรีเฟรชทักษะคณิตศาสตร์ก่อนอ่านหนังสือเล่มนี้หรือไม่? (ฉันลืมคณิตศาสตร์เกือบทั้งหมดที่ฉันเรียนในโรงเรียนมัธยมและวิทยาลัย) หากหนังสือเล่มนี้ต้องการความรู้ด้านคณิตศาสตร์ที่แข็งแกร่งโปรดแนะนำวิชาที่ได้รับประโยชน์ ฉันต้องการเรียนรู้เกี่ยวกับการใช้งานการออกแบบและการวิเคราะห์อัลกอริทึม

7
มีรูปแบบอัลกอริทึมในการปกป้องเนื้อหาใด ๆ ในเว็บเพื่อให้แน่ใจว่าฉันเป็นคนแรกที่สร้างมันขึ้นมาหรือไม่?
ไม่กี่ปีที่ผ่านมามีแฮ็กเกอร์คนนี้ (จำไม่ได้ว่าเขาเป็นใคร) ที่เปิดเผยช่องโหว่อย่างเต็มรูปแบบในระบบที่กำหนด แต่เพื่อให้แน่ใจว่าไม่มีใครให้เครดิตเขาเลยสร้างคีย์ PGP ขึ้นมา สิ่งที่ฉันเข้าใจในเวลานั้นคือเขาสร้างกุญแจเพื่อให้แน่ใจว่าเขาเป็นผู้ค้นพบ แต่ไม่เปิดเผยว่าเขาเป็นใครเพียงสร้างกลไกเพื่อให้สามารถพิสูจน์ได้ว่าเขาเป็นผู้สร้างการเปิดเผย . ตกลง. ฉันเข้าใจว่าอัลกอริทึมและการเข้ารหัสทำงานอย่างไร แต่ฉันยังไม่เข้าใจว่าคุณสามารถสร้างคีย์เพื่อปกป้องเนื้อหาที่เปิดเผยในเว็บเพื่อพิสูจน์ว่าคุณเป็นคนแรกที่สร้างมันขึ้นมา! มันเป็นเพียงคำพูด! เป็นไปได้จริงเหรอ? สิ่งที่ควรเป็นกระบวนการเพื่อให้แน่ใจว่าคุณสามารถพิสูจน์ได้ประจักษ์? ฉันเข้าใจถูกต้องหรือไม่ฉันอาจพลาดบางสิ่งเกี่ยวกับกรณีนี้ ฉันหวังว่าคำถามนี้มีความเฉพาะเพียงพอโดยทั่วไปเป็นเพียงวิธีการปกป้องเนื้อหาที่คุณสร้างขึ้นในเว็บ (ย่อหน้ารหัสคำ ฯลฯ ) และให้แน่ใจว่าคุณเป็นคนแรกที่สร้างขึ้นภายใน บริบทที่กำหนด ด้วยความรู้ของฉันฉันไม่เห็นว่าเป็นไปได้ แต่ฉันรู้สึกทึ่งถ้ามีวิธีการปฏิบัติที่จะทำ มีอะไรบ้าง

5
นี่เป็น "กฎ" ที่เหมาะสมสำหรับการระบุสัญลักษณ์ "บิ๊กโอ" ของอัลกอริทึมหรือไม่?
ฉันได้เรียนรู้เพิ่มเติมเกี่ยวกับ Big O Notation และวิธีการคำนวณตามวิธีการเขียนอัลกอริทึม ฉันเจอชุด "กฎ" ที่น่าสนใจสำหรับการคำนวณอัลกอริธึมสัญลักษณ์ Big O และฉันต้องการดูว่าฉันอยู่ในเส้นทางที่ถูกต้องหรือไม่ สัญลักษณ์ Big O: N function(n) { For(var a = 0; i <= n; i++) { // It's N because it's just a single loop // Do stuff } } สัญลักษณ์ Big O: N 2 function(n, b) { For(var a …
29 algorithms  big-o 

7
ฉันควรลงทุนในโครงสร้างข้อมูลและอัลกอริทึมต่อไปหรือไม่ [ปิด]
วันนี้ฉันลงทุนอย่างมากในโครงสร้างข้อมูลและอัลกอริทึมและพยายามแก้ปริศนาการเขียนโปรแกรมบางอย่าง ฉันพยายามเขียนโปรแกรมและแก้ปัญหาด้วย Java และ Clojure ฉันจะเสียเวลาหรือเปล่า? ฉันควรลงทุนในเทคโนโลยีและกรอบการทำงานที่ฉันรู้แล้วเพื่อให้ได้ความรู้ที่ลึกซึ้งยิ่งขึ้น (รายละเอียดและลึกหนาบาง) และสามารถใช้รหัสกับพวกเขาได้เร็วขึ้น? จากการศึกษาโครงสร้างข้อมูลและอัลกอริธึมฉันจะกลายเป็นโปรแกรมเมอร์ที่ดีขึ้นหรือวิชาเหล่านั้นมีความสำคัญในช่วงปีการศึกษา?

9
การสร้างโครงร่างสี - ทฤษฎีและอัลกอริธึม [ปิด]
ฉันจะสร้างแผนภูมิและไดอะแกรมและฉันกำลังมองหาทฤษฎีเกี่ยวกับโครงร่างสีและตัวอย่างอัลกอริทึม ตัวอย่างคำถาม: วิธีการสร้างสีเสริมหรือคล้ายคลึงกัน? วิธีการสร้างสีพาสเทลเย็นและอบอุ่น? วิธีการสร้างสีแบบสุ่ม แต่แตกต่างกันจำนวนเท่าใด? วิธีการแปลทั้งหมดนั้นให้เป็นเลขฐานสิบหก (สีของเว็บ) การใช้งานของฉันจะอยู่ใน AS3 แต่ยินดีต้อนรับตัวอย่างใด ๆ ใน pseudocode

3
ลิฟต์ใช้อัลกอริทึมใดในการค้นหาเส้นทางที่สั้นที่สุดในการเดินทางไปยังคำสั่งซื้อที่พื้น
ฉันพยายามที่จะจำลองลิฟต์เช่นเคยฉันเริ่มง่ายมากโดยการสั่งซื้อครั้งเดียวเพียงครั้งเดียวแล้วเพิ่มหน่วยความจำในลิฟต์ในรูปแบบของคิวเพื่อให้ชั้นจะเดินทางตามลำดับที่พวกเขากด ซึ่งเห็นได้ชัดว่าไม่ใช่วิธีที่ดีที่สุด ดังนั้นในขณะนี้ฉันใช้ตรรกะที่เรียบง่ายและ "สายตาสั้น" ซึ่งก็คือสำหรับชั้นปัจจุบันหาพื้นที่อยู่ใกล้ฉันที่สุดและตั้งเป็นปลายทางต่อไปของฉันและวนไปเรื่อย ๆ จนไม่มีชั้นอื่น ๆ อยู่ในรายการ แต่มันไม่ได้ผลเสมอไปตัวอย่างเช่นลิฟต์อยู่ที่ชั้น 3 ของอาคาร 5 ชั้นและได้รับคำสั่ง 4,5,2 เส้นทางที่สั้นที่สุดจะเป็น 2-> 4-> 5 ซึ่งมีค่าใช้จ่าย 4 ชั้น แต่ใช้ตรรกะนี้ 4-> 5-> 2 ซึ่งมีค่าใช้จ่าย 5 มีโอกาสถูกเลือกขึ้นอยู่กับรหัส ฉันจะค้นหาเส้นทางที่สั้นที่สุดและทำให้ลิฟต์มีประสิทธิภาพมากขึ้นได้อย่างไร

3
อัลกอริทึมการค้นหาสตริงใดที่เร็วที่สุด
ฉันติดอยู่กับที่ซึ่งเป็นอัลกอริธึมการค้นหาสตริงที่เร็วที่สุดได้ยินความคิดเห็นมากมาย แต่ในที่สุดฉันก็ไม่แน่ใจ ฉันเคยได้ยินบางคนพูดว่าอัลกอริทึมที่เร็วที่สุดคือ Boyer-Moore และบางคนบอกว่า Knuth-Morris-Pratt เร็วกว่าจริง ผมได้มองขึ้นสำหรับซับซ้อนทั้งในส่วนของพวกเขา O(n+m)แต่พวกเขาส่วนใหญ่มีลักษณะเดียวกัน ฉันได้พบว่าในกรณีที่เลวร้ายที่สุดกรณี Boyer-Moore มีO(nm)ความซับซ้อนเมื่อเทียบกับ Knuth-Morris-Pratt ซึ่งมี O (m + 2 * n) โดยที่ n = ความยาวของข้อความและ m = ความยาวของรูปแบบ เท่าที่ฉันรู้บอยเยอร์ - มัวร์มีเวลาตรงเชิงเส้นที่เลวร้ายที่สุดถ้าฉันจะใช้กฎกาลิล คำถามของฉันสิ่งที่จริงแล้วคืออัลกอริธึมการค้นหาสตริงที่เร็วที่สุด (คำถามนี้รวมถึงอัลกอริธึมต่อยที่เป็นไปได้ทั้งหมดไม่ใช่แค่ Boyer-Moore และ Knuth-Morris-Pratt) แก้ไข:เนื่องจากคำตอบนี้ สิ่งที่ฉันกำลังมองหาคือ: ได้รับข้อความTและรูปแบบที่Pผมต้องไปหาที่ปรากฏทั้งหมดของในPT นอกจากนี้ความยาวของ P และ T มาจาก[1,2 000 000]และโปรแกรมต้องทำงานต่ำกว่า 0.15 วินาที ฉันรู้ว่า KMP และ …

5
คนอื่นสามารถจดสิทธิบัตรอัลกอริทึมแบบเปิดของฉัน [ปิด]
ฉันได้เขียนอัลกอริทึมการค้นหาแบบเรียกซ้ำเพื่อค้นหาขอบเขตของโครงสร้างข้อมูล voxel เพื่อให้มีประสิทธิภาพยิ่งขึ้น ฉันมองไปรอบ ๆ และมันก็เป็นเทคนิคที่ง่ายและชัดเจนที่ไม่มีใครใส่ใจจดสิทธิบัตรหรือเป็นนวนิยายและไม่มีใครทำแบบนี้มาก่อน มันเป็น "เผยแพร่" อย่างเปิดเผยใน GitHub และได้รับการคุ้มครองภายใต้ GPL ฉันต้องการแสดงให้ผู้อื่นเห็นว่าสามารถปรับปรุงได้หรือไม่ ... ฉันกลัวว่าแม้ว่าฉันจะเขียนและตีพิมพ์ แต่บางคนอาจพยายามจดสิทธิบัตรแนวคิดเดียวกัน ฉันปลอดภัยได้รับการปกป้องจากแบนเนอร์ของซอฟต์แวร์โอเพนซอร์ซหรือไม่หรือฉันต้องพยายามปกป้องตัวเองเหมือนปืนใหญ่และโทรลล์สิทธิบัตร ฉันเชื่อว่าสิทธิบัตรซอฟต์แวร์นั้นชั่วร้ายและเพื่อให้ซอฟต์แวร์ที่ดีที่สุดในการเขียนนั้นหลายคนต้องมองเห็น ฉันกังวลว่านี่อาจเป็นมุมมองที่ค่อนข้างไร้สาระเกี่ยวกับวิธีการเขียนซอฟต์แวร์ แต่ฉันสงสัยว่าคนอื่นคิดอย่างไร

5
ทำไมการผสาน O (log n)
การรวมกันเป็นอัลกอริทึมการหารและการพิชิตและเป็น O (บันทึก n) เนื่องจากอินพุตถูกลดลงครึ่งหนึ่งซ้ำ ๆ แต่ไม่ควรเป็น O (n) เพราะแม้ว่าอินพุตจะลดลงครึ่งหนึ่งแต่ละลูปแต่ละไอเท็มจะต้องมีการวนซ้ำเพื่อทำการสลับในแต่ละอาร์เรย์ครึ่งหนึ่งหรือไม่ นี่คือความหมายเชิง O (n) ในใจของฉัน หากเป็นไปได้โปรดให้ตัวอย่างและอธิบายวิธีนับการดำเนินการอย่างถูกต้อง ฉันยังไม่ได้เขียนอะไรขึ้น แต่ฉันได้ดูอัลกอริทึมออนไลน์ ฉันได้แนบ gif ของวิกิพีเดียที่ใช้เพื่อแสดงให้เห็นว่าการผสานทำงานอย่างไร
27 algorithms  big-o 

4
MapReduce มีอะไรมากกว่าแค่การแบ่งและพิชิตหรือไม่?
การแบ่งปัญหาเป็นปัญหาเล็ก ๆ จนกระทั่งแต่ละปัญหาสามารถแก้ไขได้อย่างอิสระจากนั้นทำการรวมคำถามเหล่านั้นเพื่อตอบคำถามเดิมซึ่งเรียกว่าเทคนิคการออกแบบขั้นตอนวิธีการหารและพิชิต [ดู: รู้เบื้องต้นเกี่ยวกับอัลกอริทึมโดย CLR] เมื่อเร็ว ๆ นี้วิธีการนี้ในการแก้ปัญหาการคำนวณโดยเฉพาะในโดเมนของชุดข้อมูลขนาดใหญ่มากถูกเรียกว่าMapReduceแทนที่จะแบ่งและพิชิต คำถามของฉันมีดังต่อไปนี้: MapReduce มีอะไรมากกว่ากรอบกรรมสิทธิ์ที่ต้องอาศัยวิธีการแบ่งและพิชิตหรือมีรายละเอียดที่ทำให้เป็นเอกลักษณ์ในบางแง่มุมหรือไม่?
26 algorithms 

3
จะค้นหาเส้นทางที่สั้นที่สุดที่มีโหนดหนอนได้อย่างไร
นี่คือตัวอย่างของสิ่งที่ฉันต้องการทำผ่านรหัส ฉันรู้ว่าคุณสามารถใช้การค้นหาจุดกระโดดได้อย่างง่ายดายจากโหนดสีเขียวไปยังโหนดสีแดงโดยไม่มีปัญหาหรือแม้แต่ A * แต่คุณจะคำนวณสิ่งนี้อย่างไรกับการแปรปรวน ในภาพคุณจะเห็นว่ามันใช้เวลาเพียง 8 ย้ายจากโหนดสีเขียวไปยังโหนดสีแดงเมื่อถ่ายเส้นทางสีฟ้า เส้นทางสีน้ำเงินย้ายตำแหน่งของคุณจากโหนดสีม่วงไปยังตำแหน่งถัดไปทันที พื้นที่ตรงกลางที่มีค่าใช้จ่าย 2 การเคลื่อนไหวเป็นจุดระหว่างสองโซน warp ที่คุณต้องย้ายไป เห็นได้ชัดว่าเร็วกว่าที่จะใช้เส้นทางสีฟ้าเนื่องจากคุณจะต้องย้ายครึ่งหนึ่ง (ประมาณ) เท่า ๆ กับเส้นทางสีเหลือง แต่ฉันจะทำสิ่งนี้อย่างไรในเชิงโปรแกรม? เพื่อจุดประสงค์ในการแก้ปัญหานี้สมมติว่ามี "วาร์ป" สีม่วงหลายรอบกราฟที่คุณสามารถใช้งานได้และเรารู้ว่าจุดสีม่วงแต่ละจุดจะโค้งงอและตรงไหนบนกราฟ วาร์ปสีม่วงบางตัวเป็นแบบสองทิศทางและบางอันไม่ใช่ความหมายบางครั้งคุณสามารถป้อนวาร์ปจากด้านหนึ่ง แต่ไม่กลับไปหลังจากการแปรปรวน ฉันคิดเกี่ยวกับวิธีแก้ปัญหาและสรุปเพียงว่าฉันจะสามารถคำนวณปัญหาได้โดยการตรวจสอบระยะทางไปยังจุดแปรปรวนแต่ละจุด (ลบจุดเดียวทิศทาง) และความแตกต่างระหว่างจุดเหล่านั้นและจุดที่อยู่ใกล้พวกเขา . โปรแกรมจะต้องคิดออกว่ามันจะมีประโยชน์มากกว่าที่จะใช้วิปริตที่สองแทนที่จะเดินจากการกระโดดครั้งแรก ดังนั้นแทนที่จะเคลื่อนที่ 6 จุดจากนั้นแปรปรวนจากนั้นย้ายส่วนที่เหลืออีก 8 ก้าวด้วยการเดินเท้า (ซึ่งเร็วกว่าการไม่ใช้ warps เลย) จะใช้การเคลื่อนไหว 6 ครั้งจากนั้นทั้งสองเดินไปที่วิปริตสอง แก้ไข:ฉันรู้ว่าเส้นทางสีน้ำเงินจะใช้เวลา 12 การเคลื่อนไหวแทนที่จะเป็น 8 แต่คำถามยังคงเหมือนเดิม

4
อัลกอริทึมการแลกเปลี่ยนค่า XOR นี้ยังใช้งานอยู่หรือมีประโยชน์
เมื่อฉันเริ่มทำงานกับโปรแกรมเมอร์แอสเซมเบลอร์เมนเฟรมแสดงให้ฉันเห็นว่าพวกเขาสลับไปยังค่าโดยไม่ต้องใช้อัลกอริทึมแบบดั้งเดิมของ: a = 0xBABE b = 0xFADE temp = a a = b b = temp สิ่งที่พวกเขาใช้ในการสลับสองค่า - จากบิตเป็นบัฟเฟอร์ขนาดใหญ่ - คือ: a = 0xBABE b = 0xFADE a = a XOR b b = b XOR a a = a XOR b ตอนนี้ b == 0xBABE a == 0xFADE ซึ่งสลับเนื้อหาของวัตถุ …
25 algorithms 

5
การพิจารณาว่าอัลกอริทึมเป็น O (บันทึก n)
ฉันรีเฟรช CS Theory ของฉันและฉันต้องการทราบวิธีระบุความซับซ้อนของอัลกอริทึม O (log n) โดยเฉพาะมีวิธีง่าย ๆ ในการระบุหรือไม่ ฉันรู้ด้วย O (n) คุณมักจะมีวงเดียว; O (n ^ 2) เป็นวงคู่ O (n ^ 3) เป็นสามวงเป็นต้นแล้ว O (log n) เป็นอย่างไร

4
ในรหัสเทียมอะไร: = หมายถึงอะไร
ส่วนที่ชื่อว่าAlgorithmic Implementationมีรหัสต่อไปนี้: // Return RC low-pass filter output samples, given input samples, // time interval dt, and time constant RC function lowpass(real[0..n] x, real dt, real RC) var real[0..n] y var real α := dt / (RC + dt) y[0] := x[0] for i from 1 to n y[i] := …
25 algorithms 

9
คำถามอัลกอริทึมเป็นคำถามสัมภาษณ์ที่ดีหรือไม่? [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันมีข้อโต้แย้งเมื่อเร็ว ๆ นี้กับโปรแกรมเมอร์เพื่อน เขาสัมภาษณ์ตำแหน่งใหม่และถูกถามคำถามนี้: ให้ลำดับของตัวเลขเริ่มต้นที่ X และสิ้นสุดใน Y แต่องค์ประกอบหนึ่งหายไปดังนั้น N คือ YX-1 ค้นหาองค์ประกอบที่หายไปใน O (N) หรือดีกว่า ตอนนี้คำตอบไม่เกี่ยวข้องที่นี่ (แต่น่าสนใจ) สิ่งนี้เริ่มต้นการอภิปรายว่านี่เป็นคำถามที่ดีที่จะถามในระหว่างการสัมภาษณ์หรือไม่ ด้านหนึ่ง: อัลกอริทึมเป็นส่วนหนึ่งของการเขียนโปรแกรมและความสามารถของผู้สมัครที่จะตอบคำถามนี้สนับสนุนว่าผู้สมัครคนนี้จะเป็นโปรแกรมเมอร์ที่ดีและสามารถแก้ปัญหาที่ใหญ่กว่าและสามารถจัดการกับงานด้านการเขียนโปรแกรมส่วนใหญ่ อีกด้านหนึ่ง: การเขียนอัลกอริธึมจากศูนย์มักไม่ค่อยใช้ในการเขียนโปรแกรมสมัยใหม่และดังนั้นจึงไม่เกี่ยวข้องกับคำถามที่ใหญ่กว่าว่าบุคคลนั้นจะเป็นโปรแกรมเมอร์ที่ดีหรือไม่ บุคคลสามารถตอบคำถามนี้ได้สำเร็จ แต่ก็ยังไม่สามารถทำงานโปรแกรมทั่วไปได้มากขึ้น ความคิดของคุณ? คำถามสัมภาษณ์ที่ดีหรือไม่?

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