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

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

9
อัลกอริทึมเพื่อเปรียบเทียบภาพสองภาพ
ไฟล์รูปภาพที่แตกต่างกันสองไฟล์ (ในรูปแบบที่ฉันเลือก) ฉันต้องเขียนโปรแกรมเพื่อทำนายโอกาสหากไฟล์นั้นเป็นสำเนาที่ผิดกฎหมายของไฟล์อื่น ผู้เขียนสำเนาอาจทำสิ่งต่าง ๆ เช่นหมุนหมุนลบหรือเพิ่มรายละเอียดเล็กน้อย (รวมถึงการเปลี่ยนมิติของภาพ) คุณรู้จักอัลกอริทึมในการทำงานประเภทนี้หรือไม่?

28
เลือก N องค์ประกอบสุ่มจากรายการ <T> ใน C #
ฉันต้องการอัลกอริทึมด่วนเพื่อเลือก 5 องค์ประกอบแบบสุ่มจากรายการทั่วไป ตัวอย่างเช่นผมต้องการที่จะได้รับ 5 List&lt;string&gt;องค์ประกอบสุ่มจาก

12
วิธีการแปลงเรเดียนเป็นองศาคืออะไร
ฉันพบเจอสิ่งนี้เป็นครั้งคราวและลืมวิธีที่จะทำเสมอ หนึ่งในสิ่งเหล่านั้นที่ปรากฏขึ้นบ่อยครั้ง นอกจากนี้สูตรการแปลงมุมที่แสดงเป็นเรเดียนเป็นองศาแล้วกลับมาอีกครั้งคืออะไร

5
เรียงลำดับคะแนนตามเข็มนาฬิกาหรือไม่
กำหนดอาร์เรย์ของ x, y คะแนนฉันจะจัดเรียงคะแนนของอาร์เรย์นี้ตามลำดับตามเข็มนาฬิกา (รอบจุดศูนย์กลางเฉลี่ยโดยรวมของพวกเขา) ได้อย่างไร เป้าหมายของฉันคือการส่งคะแนนไปยังฟังก์ชั่นการสร้างบรรทัดเพื่อจบลงด้วยสิ่งที่ดูค่อนข้าง "แข็ง" เท่าที่จะเป็นไปได้โดยไม่ต้องมีการตัดกัน สำหรับสิ่งที่คุ้มค่าฉันกำลังใช้ Lua แต่โค้ดปลอมใด ๆ จะได้รับการชื่นชม อัปเดต:สำหรับการอ้างอิงนี่คือรหัส Lua ตามคำตอบที่ยอดเยี่ยมของ Ciamej (ไม่ต้องใส่คำนำหน้า "แอพ" ของฉัน): function appSortPointsClockwise(points) local centerPoint = appGetCenterPointOfPoints(points) app.pointsCenterPoint = centerPoint table.sort(points, appGetIsLess) return points end function appGetIsLess(a, b) local center = app.pointsCenterPoint if a.x &gt;= 0 and b.x &lt; 0 …

15
การค้นหาองค์ประกอบสามรายการในอาร์เรย์ที่มีผลรวมใกล้เคียงกับจำนวนที่กำหนดมากที่สุด
ได้รับอาร์เรย์ของจำนวนเต็ม, A 1 , A 2 , ... , A nรวมทั้งเชิงลบและบวกและอีกจำนวนเต็มเอสตอนนี้เราต้องไปหาสามเลขที่แตกต่างกันในอาร์เรย์ที่มีผลรวมจะใกล้เคียงกับที่ได้รับจำนวนเต็ม S หากมีมากกว่าหนึ่งวิธีการแก้ปัญหาใด ๆ ของพวกเขาก็โอเค คุณสามารถสมมติว่าจำนวนเต็มทั้งหมดอยู่ในช่วง int32_t และจะไม่มีการคำนวณทางคณิตศาสตร์มากเกินไปเมื่อคำนวณผลรวม S ไม่มีอะไรพิเศษ แต่เป็นหมายเลขที่สุ่มเลือก มีอัลกอริทึมที่มีประสิทธิภาพนอกเหนือจากการค้นหาแบบ brute force เพื่อหาจำนวนเต็มสามตัวหรือไม่?
155 arrays  algorithm 

7
วิธีที่รวดเร็วในการคัดลอกเวกเตอร์หนึ่งไปยังอีก
ฉันชอบสองวิธี: void copyVecFast(const vec&lt;int&gt;&amp; original) { vector&lt;int&gt; newVec; newVec.reserve(original.size()); copy(original.begin(),original.end(),back_inserter(newVec)); } void copyVecFast(vec&lt;int&gt;&amp; original) { vector&lt;int&gt; newVec; newVec.swap(original); } คุณจะทำอย่างไรมันได้หรือไม่?
155 c++  algorithm  stl 

10
อัลกอริทึม จำกัด อัตราที่ดีคืออะไร
ฉันสามารถใช้โค้ดหลอกบางอย่างหรือดีกว่า Python ฉันพยายามใช้คิว จำกัด อัตราสำหรับบอท Python IRC และทำงานได้บางส่วน แต่ถ้ามีคนทริกเกอร์ข้อความน้อยกว่าขีด จำกัด (เช่นขีด จำกัด อัตราคือ 5 ข้อความต่อ 8 วินาทีและบุคคลเรียกเพียง 4) และทริกเกอร์ถัดไปนั้นใช้เวลาเกิน 8 วินาที (เช่น 16 วินาทีต่อมา) บอทจะส่งข้อความ แต่คิวจะเต็มและบอทรอ 8 วินาทีแม้ว่ามันจะไม่จำเป็นตั้งแต่ 8 วินาทีสิ้นสุดลง

6
เมื่อแยกสตริงว่างใน Python ทำไม split () ส่งคืนรายการว่างขณะที่ split ('\ n') ส่งคืน ['']
ฉันใช้split('\n')จะได้รับสายในสายหนึ่งและพบว่า''.split()ผลตอบแทนที่รายการที่ว่างเปล่า, []ในขณะที่ผลตอบแทน''.split('\n') ['']มีเหตุผลเฉพาะสำหรับความแตกต่างดังกล่าวหรือไม่? และมีวิธีที่สะดวกกว่าในการนับจำนวนบรรทัดในสตริงหรือไม่?

11
อัลกอริทึมและ A-Star ของ Dijkstra เปรียบเทียบกันอย่างไร
ฉันกำลังดูว่าพวกผู้ชายในการแข่งขัน Mario AIทำอะไรและบางคนก็สร้างบอทมาริโอที่สวย ๆ โดยใช้อัลกอริธึม Pathing A * (A-Star) ( วิดีโอของ Mario A * Bot In Action ) คำถามของฉันคือ A-Star เปรียบเทียบกับ Dijkstra อย่างไร มองไปที่พวกเขาพวกเขาดูเหมือนคล้ายกัน ทำไมบางคนถึงใช้อีกอันหนึ่ง? โดยเฉพาะอย่างยิ่งในบริบทของเส้นทางในเกม?

30
วนเป็นเกลียว
เพื่อนต้องการอัลกอริทึมที่จะปล่อยให้เขาวนผ่านองค์ประกอบของเมทริกซ์ NxM (N และ M เป็นเลขคี่) ฉันคิดวิธีแก้ปัญหา แต่ฉันอยากเห็นว่าเพื่อนร่วมงานของฉันสามารถหาทางแก้ปัญหาที่ดีกว่านี้ได้หรือไม่ ฉันโพสต์โซลูชันของฉันเป็นคำตอบสำหรับคำถามนี้ ตัวอย่างผลลัพธ์: สำหรับเมทริกซ์ 3x3 เอาต์พุตควรเป็น: (0, 0) (1, 0) (1, 1) (0, 1) (-1, 1) (-1, 0) (-1, -1) (0, -1) (1, -1 ) นอกจากนี้อัลกอริทึมควรสนับสนุนเมทริกซ์ที่ไม่ใช่สแควร์ดังนั้นตัวอย่างเช่นเมทริกซ์ 5x3 เอาต์พุตควรเป็น: (0, 0) (1, 0) (1, 1) (0, 1) (-1, 1) (-1, 0) (-1, -1) (0, …

5
อัลกอริทึมการปูกระเบื้องแผนที่
แผนที่ ฉันกำลังสร้าง RPG แบบเรียงต่อกันพร้อมจาวาสคริปต์โดยใช้ความสูงของเสียง perlin จากนั้นกำหนดประเภทของไทล์ตามความสูงของเสียง แผนที่จะมีลักษณะดังนี้ (ในมุมมองย่อแผนที่) ฉันมีอัลกอริทึมที่ค่อนข้างง่ายซึ่งแยกค่าสีจากแต่ละพิกเซลของภาพและแปลงเป็นจำนวนเต็ม (0-5) ขึ้นอยู่กับตำแหน่งระหว่าง (0-255) ซึ่งสอดคล้องกับไทล์ในพจนานุกรมกระเบื้อง อาร์เรย์ 200x200 นี้จะถูกส่งไปยังไคลเอนต์ จากนั้นเอ็นจิ้นจะกำหนดไทล์จากค่าในอาเรย์แล้วนำไปวางบนผืนผ้าใบ ดังนั้นฉันจึงจบลงด้วยโลกที่น่าสนใจที่มีคุณสมบัติการมองที่เหมือนจริง: ภูเขาทะเล ฯลฯ ตอนนี้สิ่งต่อไปที่ฉันอยากทำคือใช้อัลกอริธึมผสมบางชนิดที่จะทำให้แผ่นกระเบื้องกลมกลืนกับเพื่อนบ้านได้อย่างกลมกลืนหากเพื่อนบ้านไม่ได้เป็นแบบเดียวกัน แผนที่ตัวอย่างด้านบนคือสิ่งที่ผู้เล่นเห็นในแผนที่ย่อ บนหน้าจอพวกเขาเห็นเวอร์ชันที่แสดงผลของส่วนที่ทำเครื่องหมายโดยสี่เหลี่ยมสีขาว ตำแหน่งที่ไทล์ถูกเรนเดอร์ด้วยรูปภาพแทนที่จะเป็นพิกเซลสีเดียว นี่คือตัวอย่างของสิ่งที่ผู้ใช้จะเห็นในแผนที่ แต่มันไม่ใช่ตำแหน่งเดียวกับวิวพอร์ตด้านบนแสดง! มันอยู่ในมุมมองนี้ที่ฉันต้องการให้การเปลี่ยนแปลงเกิดขึ้น อัลกอริทึม ฉันคิดอัลกอริธึมง่ายๆที่จะสำรวจแผนที่ภายในวิวพอร์ตและแสดงภาพอื่นที่ด้านบนสุดของแต่ละไทล์โดยให้เป็นภาพถัดจากไทล์ประเภทอื่น (ไม่เปลี่ยนแผนที่เพียงแสดงภาพพิเศษบางส่วน) แนวคิดของอัลกอริทึมคือแสดงโปรไฟล์เพื่อนบ้านของกระเบื้องปัจจุบัน: นี่เป็นสถานการณ์ตัวอย่างของสิ่งที่เอ็นจิ้นอาจต้องเรนเดอร์โดยไทล์ปัจจุบันจะถูกทำเครื่องหมายด้วย X อาร์เรย์ 3x3 ถูกสร้างขึ้นและอ่านค่ารอบ ๆ ดังนั้นตัวอย่างนี้อาร์เรย์จะมีลักษณะเช่นนี้ [ [1,2,2] [1,2,2] [1,1,2] ]; ความคิดของฉันคือการหาชุดของกรณีสำหรับการกำหนดค่าไทล์ที่เป็นไปได้ ในระดับที่ง่ายมาก: if(profile[0][1] != profile[1][1]){ //draw a …

18
จะสร้างต้นไม้จากโครงสร้างที่มีประสิทธิภาพได้อย่างไร
ฉันมีพวงของวัตถุในโครงสร้างแบน วัตถุเหล่านี้มีIDและParentIDคุณสมบัติเพื่อให้สามารถจัดเรียงในต้นไม้ พวกเขาไม่อยู่ในลำดับที่เฉพาะเจาะจง แต่ละParentIDคุณสมบัติไม่จำเป็นต้องตรงกับIDในโครงสร้าง ดังนั้นต้นไม้ของพวกเขาอาจจะโผล่ออกมาจากวัตถุเหล่านี้ คุณจะประมวลผลวัตถุเหล่านี้เพื่อสร้างต้นไม้ที่ได้อย่างไร ฉันไม่ได้อยู่ไกลจากการแก้ปัญหา แต่ฉันแน่ใจว่ามันอยู่ไกลจากที่ดีที่สุด ... ฉันต้องสร้างต้นไม้เหล่านี้เพื่อแทรกข้อมูลลงในฐานข้อมูลตามลำดับที่ถูกต้อง ไม่มีการอ้างอิงแบบวงกลม โหนดเป็น RootNode เมื่อ ParentID == null หรือเมื่อไม่สามารถพบ ParentID ในวัตถุอื่น ๆ ได้

30
ตั้งทุกเซลล์ในเมทริกซ์เป็น 0 หากแถวหรือคอลัมน์นั้นมี 0
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ รับเมทริกซ์ NxN ด้วย 0s และ 1s ตั้งแถวที่มีทุก0ทุก0s และตั้งคอลัมน์ที่มีทุก0ทุก0วินาที ตัวอย่างเช่น 1 0 1 1 0 0 1 1 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 ผลลัพธ์ใน 0 0 0 0 0 0 0 0 0 0 0 0 …

30
ตัวคูณร่วมน้อยสำหรับ 3 ตัวหรือมากกว่า
คุณจะคำนวณจำนวนตัวคูณร่วมที่น้อยที่สุดในหลายวิธีได้อย่างไร จนถึงตอนนี้ฉันสามารถคำนวณได้ระหว่างตัวเลขสองตัวเท่านั้น แต่ไม่รู้จะขยายอย่างไรเพื่อคำนวณตัวเลข 3 ตัวขึ้นไป จนถึงตอนนี้เป็นวิธีที่ฉันทำ LCM = num1 * num2 / gcd ( num1 , num2 ) ด้วย gcd เป็นฟังก์ชันในการคำนวณตัวหารร่วมที่ยิ่งใหญ่ที่สุดสำหรับตัวเลข ใช้อัลกอริทึมแบบยุคลิด แต่ฉันไม่สามารถหาวิธีการคำนวณเป็น 3 หรือมากกว่าได้
152 algorithm  math  lcm 

30
วิธีสร้างการแม็พแบบกระชับที่สุด n → isprime (n) สูงสุดถึงขีด จำกัด N?
โดยธรรมชาติแล้วbool isprime(number)จะมีโครงสร้างข้อมูลที่ฉันสามารถสืบค้นได้ ฉันกำหนดอัลกอริธึมที่ดีที่สุดเพื่อเป็นอัลกอริธึมที่สร้างโครงสร้างข้อมูลที่มีการใช้หน่วยความจำต่ำสุดสำหรับช่วง (1, N] โดยที่ N เป็นค่าคงที่ เพียงตัวอย่างของสิ่งที่ฉันกำลังมองหา: ฉันสามารถแทนตัวเลขคี่ ด้วยหนึ่งบิตเช่นสำหรับช่วงตัวเลขที่กำหนด (1, 10] เริ่มต้นที่ 3:1110 พจนานุกรมต่อไปนี้สามารถบีบได้มากกว่านี้ใช่ไหม ฉันสามารถกำจัดทวีคูณของห้าด้วยงานบางอย่าง แต่ตัวเลขที่ลงท้ายด้วย 1, 3, 7 หรือ 9 ต้องอยู่ในอาร์เรย์ของบิต ฉันจะแก้ปัญหาได้อย่างไร

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