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

อัลกอริทึมเป็นลำดับขั้นตอนที่กำหนดไว้อย่างดีซึ่งกำหนดวิธีแก้ปัญหาแบบนามธรรมให้กับปัญหา ใช้แท็กนี้เมื่อปัญหาของคุณเกี่ยวข้องกับการออกแบบอัลกอริทึม

16
Tetris-ing อาร์เรย์
พิจารณาอาร์เรย์ต่อไปนี้: /www/htdocs/1/sites/lib/abcdedd /www/htdocs/1/sites/conf/xyz /www/htdocs/1/sites/conf/abc/def /www/htdocs/1/sites/htdocs/xyz /www/htdocs/1/sites/lib2/abcdedd วิธีใดคือวิธีที่สั้นที่สุดและสวยงามที่สุดในการตรวจจับเส้นทางพื้นฐานทั่วไป - ในกรณีนี้ /www/htdocs/1/sites/ และลบออกจากองค์ประกอบทั้งหมดในอาร์เรย์? lib/abcdedd conf/xyz conf/abc/def htdocs/xyz lib2/abcdedd
99 php  string  algorithm 

5
ค้นหา XOR ของตัวเลขทั้งหมดในช่วงที่กำหนด
คุณจะได้รับช่วงขนาดใหญ่ [a, b] โดยที่ 'a' และ 'b' สามารถอยู่ระหว่าง 1 ถึง 4,000,000,000 รวม คุณต้องหา XOR ของตัวเลขทั้งหมดในช่วงที่กำหนด ปัญหานี้ถูกใช้ใน TopCoder SRM ฉันเห็นหนึ่งในโซลูชันที่ส่งมาในการแข่งขันและฉันไม่สามารถเข้าใจได้ว่ามันทำงานอย่างไร ใครช่วยอธิบายวิธีแก้ปัญหาที่ชนะได้: long long f(long long a) { long long res[] = {a,1,a+1,0}; return res[a%4]; } long long getXor(long long a, long long b) { return f(b)^f(a-1); } นี่getXor()คือฟังก์ชันจริงในการคำนวณ xor ของจำนวนทั้งหมดในช่วงที่ผ่าน [a, …
99 algorithm 

4
เอกสารดัชนีลูซีนอย่างไร?
ฉันอ่านเอกสารเกี่ยวกับ Lucene; ฉันอ่านเอกสารในลิงค์นี้ด้วย ( http://lucene.sourceforge.net/talks/pisa ) ฉันไม่เข้าใจจริงๆว่า Lucene ทำดัชนีเอกสารอย่างไรและไม่เข้าใจว่า Lucene ใช้อัลกอริทึมใดในการจัดทำดัชนี ในลิงค์ด้านบนกล่าวว่า Lucene ใช้อัลกอริทึมนี้ในการจัดทำดัชนี: อัลกอริทึมที่เพิ่มขึ้น: รักษาสแต็กของดัชนีเซ็กเมนต์ สร้างดัชนีสำหรับเอกสารขาเข้าแต่ละฉบับ ดันดัชนีใหม่ไปยังสแต็ก ให้ b = 10 เป็นปัจจัยผสาน M = 8 for (size = 1; size < M; size *= b) { if (there are b indexes with size docs on top of the stack) …


12
กำลังมองหาอัลกอริทึมการสร้างแผนที่โลกที่ดี [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน3 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังทำงานกับเกมที่มีลักษณะคล้ายอารยธรรมและฉันกำลังมองหาอัลกอริทึมที่ดีในการสร้างแผนที่โลกแบบ Earth ฉันได้ทดลองกับทางเลือกสองสามทาง แต่ยังไม่ได้ผู้ชนะที่แท้จริง ทางเลือกหนึ่งคือสร้างแผนที่ความสูงโดยใช้เสียง Perlinและเติมน้ำในระดับเพื่อให้ประมาณ 30% ของโลกเป็นที่ดิน ในขณะที่เสียง Perlin (หรือเทคนิคที่ใช้เศษส่วนที่คล้ายกัน) มักใช้สำหรับภูมิประเทศและมีความสมจริงพอสมควร แต่ก็ไม่ได้มีวิธีการควบคุมจำนวนขนาดและตำแหน่งของทวีปที่เกิดขึ้นมากนักซึ่งฉันต้องการ มีจากมุมมองการเล่นเกม ตัวเลือกที่สองคือการเริ่มต้นด้วยเมล็ดกระเบื้องเดียวที่วางตำแหน่งแบบสุ่ม (ฉันกำลังทำงานบนตารางกระเบื้อง) กำหนดขนาดที่ต้องการสำหรับทวีปและแต่ละรอบเพิ่มกระเบื้องที่อยู่ในแนวนอนหรือแนวตั้งที่อยู่ติดกับทวีปที่มีอยู่จนกระทั่ง คุณได้ถึงขนาดที่ต้องการแล้ว ทำซ้ำสำหรับทวีปอื่น ๆ เทคนิคนี้เป็นส่วนหนึ่งของอัลกอริทึมที่ใช้ในอารยธรรม 4 ปัญหาคือหลังจากวางสองสามทวีปแรกแล้วคุณสามารถเลือกตำแหน่งเริ่มต้นที่ล้อมรอบด้วยทวีปอื่น ๆ ได้ดังนั้นจึงไม่เหมาะกับทวีปใหม่ นอกจากนี้ยังมีแนวโน้มที่จะวางไข่ทวีปใกล้กันเกินไปส่งผลให้บางสิ่งดูเหมือนแม่น้ำมากกว่าทวีป ไม่มีใครรู้อัลกอริทึมที่ดีในการสร้างทวีปที่เหมือนจริงบนแผนที่แบบกริดในขณะที่ควบคุมจำนวนและขนาดสัมพัทธ์
98 algorithm  map  terrain 


2
std :: back_inserter สำหรับ std :: set?
ฉันเดาว่านี่เป็นคำถามง่ายๆ ฉันต้องทำสิ่งนี้: std::set<int> s1, s2; s1 = getAnExcitingSet(); std::transform(s1.begin(), s1.end(), std::back_inserter(s2), ExcitingUnaryFunctor()); แน่นอนไม่ทำงานเนื่องจากไม่มี std::back_inserter ยังต้องการตัววนซ้ำ? ฉันไม่ได้ใช้ดังนั้นฉันไม่แน่ใจว่าจะทำอย่างไรpush_backstd::inserterstd::inserter ใครมีความคิด? แน่นอนตัวเลือกอื่นของฉันคือใช้เวกเตอร์สำหรับs2แล้วเรียงลำดับในภายหลัง อาจจะดีกว่านี้?
98 c++  algorithm  stl 

22
อัลกอริทึมสำหรับการกำหนดเกม Tic Tac Toe Over
ฉันได้เขียนเกม tic-tac-toe ใน Java และวิธีการปัจจุบันของฉันในการกำหนดจุดสิ้นสุดของบัญชีเกมสำหรับสถานการณ์ที่เป็นไปได้ต่อไปนี้สำหรับการจบเกม: กระดานเต็มแล้วและยังไม่มีการประกาศผู้ชนะ: เกมเสมอกัน ครอสได้รับชัยชนะ Circle ได้รับรางวัล น่าเสียดายที่ในการทำเช่นนั้นจะอ่านชุดของสถานการณ์เหล่านี้ที่กำหนดไว้ล่วงหน้าจากตาราง สิ่งนี้ไม่ได้แย่เสมอไปเมื่อพิจารณาว่ามีช่องว่างเพียง 9 ช่องบนกระดานดังนั้นตารางจึงค่อนข้างเล็ก แต่มีวิธีอัลกอริทึมที่ดีกว่าในการพิจารณาว่าเกมจบลงหรือไม่? การตัดสินว่าใครได้รับรางวัลหรือไม่เป็นเนื้อของปัญหาเนื่องจากการตรวจสอบว่าช่องว่าง 9 ช่องเต็มเป็นเรื่องเล็กน้อยหรือไม่ วิธีตารางอาจเป็นวิธีแก้ปัญหา แต่ถ้าไม่คืออะไร? แล้วถ้าบอร์ดไม่ได้ขนาดn=9ล่ะ? อะไรถ้ามันถูกคณะกรรมการที่มีขนาดใหญ่, การพูดn=16, n=25และอื่น ๆ ที่ก่อให้เกิดจำนวนรายการที่วางไว้อย่างต่อเนื่องที่จะชนะจะเป็นx=4, x=5etc? อัลกอริทึมทั่วไปที่จะใช้สำหรับทุกคนn = { 9, 16, 25, 36 ... }?

10
อัลกอริทึมเพื่อรับชื่อคอลัมน์ที่เหมือน excel ของตัวเลข
ฉันกำลังทำงานกับสคริปต์ที่สร้างเอกสาร Excel และฉันต้องการแปลงตัวเลขให้เทียบเท่าชื่อคอลัมน์ ตัวอย่างเช่น: 1 => A 2 => B 27 => AA 28 => AB 14558 => UMX ฉันได้เขียนอัลกอริทึมไว้แล้ว แต่ฉันต้องการทราบว่าวิธีที่ง่ายกว่าหรือเร็วกว่าในการทำ: function numberToColumnName($number){ $abc = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; $abc_len = strlen($abc); $result_len = 1; // how much characters the column's name will have $pow = 0; while( ( $pow += pow($abc_len, $result_len) …

2
เพิ่มจำนวนเวทย์มนตร์ :: hash_combine
boost::hash_combineฟังก์ชั่นแม่แบบใช้การอ้างอิงถึงกัญชา (เรียกว่าseed) vและวัตถุ ตามเอกสารมันรวมseedกับแฮชของvโดย seed ^= hash_value(v) + 0x9e3779b9 + (seed << 6) + (seed >> 2); ฉันเห็นว่านี่เป็นปัจจัยกำหนด ฉันเห็นสาเหตุที่ใช้ XOR ฉันพนันได้เลยว่าการเพิ่มจะช่วยในการทำแผนที่ค่าที่คล้ายกันออกจากกันอย่างกว้างขวางดังนั้นตารางแฮชการตรวจสอบจะไม่พังทลาย แต่มีใครอธิบายได้ไหมว่าค่าคงที่ของเวทมนตร์คืออะไร

5
ตัวอย่างง่ายๆสำหรับผู้ที่ต้องการเข้าใจ Dynamic Programming [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังมองหาตัวอย่างที่เข้าใจได้ง่ายสำหรับผู้ที่ต้องการเรียนรู้ Dynamic Programming มีคำตอบที่ดีอยู่ที่นี่เกี่ยวกับสิ่งที่เขียนโปรแกรมแบบไดนามิก ลำดับฟีโบนักชีเป็นตัวอย่างที่ดี แต่มีขนาดเล็กเกินไปที่จะขูดขีดบนพื้นผิว มันดูเป็นเรื่องที่ดีในการเรียนรู้แม้ว่าฉันจะยังไม่ได้เรียนอัลกอริทึม แต่หวังว่ามันจะอยู่ในรายชื่อของฉันสำหรับฤดูใบไม้ผลิ

16
อัลกอริทึมสำหรับสร้างตารางเวลาของโรงเรียน
ฉันสงสัยว่ามีวิธีแก้ปัญหาสำหรับอัลกอริทึมในการสร้างตารางเรียนของโรงเรียนหรือไม่ โดยพื้นฐานแล้วมันเกี่ยวกับการเพิ่มประสิทธิภาพ "การกระจายชั่วโมง" (ทั้งในกรณีของครูและกรณีของชั้นเรียน) สำหรับความสัมพันธ์ของครูประจำชั้น เราสามารถสันนิษฐานได้ว่าเรามีชุดชั้นเรียนหัวข้อบทเรียนและครูที่เกี่ยวข้องกันที่อินพุตและตารางเวลานั้นควรพอดีระหว่าง 8.00 น. ถึง 16.00 น. ฉันเดาว่าอาจไม่มีอัลกอริทึมที่แม่นยำสำหรับสิ่งนั้น แต่อาจมีคนรู้วิธีการประมาณหรือคำแนะนำที่ดีในการพัฒนา

30
โปรแกรมเมอร์ปริศนา: การเข้ารหัสสถานะกระดานหมากรุกตลอดทั้งเกม
ไม่ใช่คำถามอย่างเคร่งครัดปริศนามากกว่า ... ในช่วงหลายปีที่ผ่านมาฉันมีส่วนร่วมในการสัมภาษณ์ทางเทคนิคของพนักงานใหม่สองสามครั้ง นอกเหนือจากการถามคำถามมาตรฐาน "คุณรู้จักเทคโนโลยี X" แล้วฉันยังพยายามทำความเข้าใจว่าพวกเขารับมือกับปัญหาอย่างไร โดยปกติฉันจะส่งคำถามให้พวกเขาทางอีเมลหนึ่งวันก่อนการสัมภาษณ์และคาดว่าพวกเขาจะได้รับคำตอบภายในวันรุ่งขึ้น บ่อยครั้งที่ผลลัพธ์ค่อนข้างน่าสนใจ - ผิด แต่น่าสนใจ - และบุคคลนั้นจะยังคงได้รับคำแนะนำของฉันหากพวกเขาสามารถอธิบายได้ว่าทำไมพวกเขาจึงใช้แนวทางเฉพาะ ดังนั้นฉันคิดว่าฉันจะโยนหนึ่งในคำถามของฉันให้กับผู้ชม Stack Overflow คำถาม: อะไรคือวิธีที่ประหยัดพื้นที่ที่สุดที่คุณคิดได้ในการเข้ารหัสสถานะของเกมหมากรุก (หรือเซตย่อย) นั่นคือให้กระดานหมากรุกที่มีการจัดเรียงชิ้นส่วนอย่างถูกกฎหมายเข้ารหัสทั้งสถานะเริ่มต้นนี้และการเคลื่อนไหวทางกฎหมายที่ตามมาทั้งหมดที่ผู้เล่นในเกมดำเนินการ ไม่ต้องใช้รหัสสำหรับคำตอบเพียงแค่คำอธิบายของอัลกอริทึมที่คุณจะใช้ แก้ไข: ตามที่ผู้โพสต์คนหนึ่งชี้ให้เห็นฉันไม่ได้พิจารณาช่วงเวลาระหว่างการเคลื่อนไหว อย่าลังเลที่จะพิจารณาสิ่งนั้นเป็นตัวเลือกเพิ่มเติม :) EDIT2: เพื่อความชัดเจนเพิ่มเติม ... โปรดจำไว้ว่าตัวเข้ารหัส / ตัวถอดรหัสเป็นกฎที่รับรู้ สิ่งเดียวที่ต้องจัดเก็บจริงๆคือตัวเลือกของผู้เล่น - สิ่งอื่นใดที่สามารถสันนิษฐานได้โดยตัวเข้ารหัส / ตัวถอดรหัส แก้ไข 3: การเลือกผู้ชนะที่นี่จะเป็นเรื่องยาก :) คำตอบที่ดีมากมาย!

4
ความซับซ้อนของเวลาของอัลกอริทึม Sieve of Eratosthenes
จากWikipedia: ความซับซ้อนของอัลกอริทึมคือ O(n(logn)(loglogn))การดำเนินการแบบบิต คุณมาถึงจุดนั้นได้อย่างไร? ความซับซ้อนรวมถึงloglognคำที่บอกฉันว่ามีsqrt(n)ที่ไหนสักแห่ง สมมติว่าฉันใช้ตะแกรงกับตัวเลข 100 ตัวแรก ( n = 100) โดยสมมติว่าการทำเครื่องหมายตัวเลขเป็นแบบผสมต้องใช้เวลาคงที่ (การใช้อาร์เรย์) จำนวนครั้งที่เราใช้mark_composite()จะเป็นดังนี้ n/2 + n/3 + n/5 + n/7 + ... + n/97 = O(n^2) และเพื่อหาตัวเลขที่สำคัญถัดไป (เช่นการกระโดด7ข้ามจากตัวเลขทั้งหมดที่มีหลายรายการ5) O(n)จำนวนของการดำเนินงานจะเป็น O(n^3)ดังนั้นความซับซ้อนจะเป็น คุณเห็นด้วยไหม?

17
ฉันจะวัดความเหมือนระหว่างสองภาพได้อย่างไร? [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน2 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันต้องการเปรียบเทียบภาพหน้าจอของแอปพลิเคชันหนึ่ง (อาจเป็นหน้าเว็บ) กับภาพหน้าจอที่ถ่ายไว้ก่อนหน้านี้เพื่อตรวจสอบว่าแอปพลิเคชันแสดงตัวเองอย่างถูกต้องหรือไม่ ฉันไม่ต้องการการเปรียบเทียบการจับคู่แบบตรงทั้งหมดเนื่องจากลักษณะอาจแตกต่างกันเล็กน้อย (ในกรณีของเว็บแอปขึ้นอยู่กับเบราว์เซอร์องค์ประกอบบางอย่างอาจอยู่ในตำแหน่งที่แตกต่างกันเล็กน้อย) ควรวัดว่าภาพหน้าจอมีความคล้ายคลึงกันเพียงใด มีไลบรารี / เครื่องมือที่ทำเช่นนั้นอยู่แล้วหรือไม่? คุณจะใช้มันอย่างไร?

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