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

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

21
แสดงการค้นหาแบบกว้างครั้งแรกแบบวนซ้ำ
สมมติว่าคุณต้องการที่จะดำเนินการค้นหาในแนวกว้างของต้นไม้ไบนารีซ้ำ คุณจะไปเกี่ยวกับมันได้อย่างไร เป็นไปได้หรือไม่ที่ใช้ call-stack เท่านั้นเป็นที่เก็บข้อมูลสำรอง?

30
ต้องการเครื่องกำเนิดไฟฟ้าแบบสุ่มที่คาดการณ์ได้
ฉันเป็นผู้พัฒนาเกมบนเว็บและฉันมีปัญหากับตัวเลขสุ่ม สมมติว่าผู้เล่นมีโอกาส 20% ที่จะได้รับการโจมตีด้วยดาบอย่างรุนแรง นั่นหมายความว่า 1 ใน 5 การเข้าชมควรสำคัญ ปัญหาคือฉันได้ผลลัพธ์ในชีวิตจริงที่แย่มาก - บางครั้งผู้เล่นจะได้รับ 3 crits ใน 5 ครั้งบางครั้งก็ไม่มี 15 ครั้ง การต่อสู้ค่อนข้างสั้น (3-10 ครั้ง) ดังนั้นสิ่งสำคัญคือต้องมีการกระจายแบบสุ่มที่ดี ขณะนี้ฉันใช้ PHP mt_rand()แต่เราเพิ่งย้ายรหัสของเราไปยัง C ++ ดังนั้นฉันต้องการแก้ปัญหานี้ในเอ็นจิ้นใหม่ของเกม ฉันไม่ทราบว่าวิธีการแก้ปัญหาเป็นเครื่องกำเนิดไฟฟ้าแบบสุ่มสม่ำเสมอหรืออาจจะจำรัฐสุ่มก่อนหน้านี้เพื่อบังคับให้มีการแจกแจงที่เหมาะสม
151 c++  algorithm  random 

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

23
ตัวเลื่อนหน้าต่างตัวเลื่อนหรือเลื่อน?
ฉันต้องการหน้าต่างกลิ้ง (หรือที่รู้จักกันในหน้าต่างเลื่อน) ทำซ้ำได้มากกว่าตัวเรียงลำดับ / ตัววนซ้ำ / ตัวสร้าง การทำซ้ำ Python เริ่มต้นถือเป็นกรณีพิเศษโดยที่ความยาวของหน้าต่างคือ 1 ฉันกำลังใช้รหัสต่อไปนี้ ไม่มีใครมีวิธี Pythonic, verbose น้อยลงหรือมีประสิทธิภาพมากขึ้นสำหรับการทำเช่นนี้? def rolling_window(seq, window_size): it = iter(seq) win = [it.next() for cnt in xrange(window_size)] # First window yield win for e in it: # Subsequent windows win[:-1] = win[1:] win[-1] = e yield win if …
151 python  algorithm 

9
ขว้างแมวออกไปนอกหน้าต่าง
ลองนึกภาพคุณอยู่ในอาคารสูงที่มีแมว แมวสามารถมีชีวิตรอดตกจากหน้าต่างชั้นต่ำ แต่จะตายหากถูกโยนลงมาจากชั้นสูง คุณจะรู้ได้อย่างไรว่าหยดที่ยาวที่สุดที่แมวสามารถอยู่รอดได้โดยใช้จำนวนครั้งน้อยที่สุด? เห็นได้ชัดว่าถ้าคุณมีแมวเพียงตัวเดียวคุณก็สามารถค้นหาแบบเชิงเส้นได้ ก่อนโยนแมวจากชั้นแรก หากยังมีชีวิตอยู่ให้โยนออกจากวินาที ในที่สุดหลังจากถูกโยนจากพื้น f แมวจะตาย คุณจะรู้ว่าชั้น f-1 เป็นชั้นที่ปลอดภัยที่สุด แต่ถ้าคุณมีแมวมากกว่าหนึ่งตัว ตอนนี้คุณสามารถลองค้นหาแบบลอการิทึมได้แล้ว สมมติว่าบิลด์มี 100 ชั้นและคุณมีแมวเหมือนกันสองตัว หากคุณโยนแมวตัวแรกออกจากชั้นที่ 50 แล้วคุณจะต้องค้นหา 50 ชั้นอย่างเป็นเส้นตรง คุณสามารถทำได้ดียิ่งขึ้นถ้าคุณเลือกชั้นล่างสำหรับความพยายามครั้งแรกของคุณ สมมติว่าคุณเลือกที่จะจัดการปัญหา 20 ชั้นในเวลาเดียวกันและชั้นที่ร้ายแรงที่สุดคือ # 50 ในกรณีนี้แมวตัวแรกของคุณจะรอดจากเที่ยวบินชั้น 20 และ 40 ก่อนตายจากชั้น 60 คุณเพียงแค่ต้องตรวจสอบชั้น 41 ถึง 49 ทีละตัว นั่นคือทั้งหมด 12 ครั้งซึ่งดีกว่า 50 อย่างที่คุณต้องการหากคุณพยายามกำจัดเลขฐานสอง โดยทั่วไปแล้วกลยุทธ์ที่ดีที่สุดคืออะไรและมีความซับซ้อนในกรณีที่เลวร้ายที่สุดสำหรับอาคารที่ไม่มีแมวสองตัว แล้วสำหรับชั้น n และแมว m …

6
วิธีที่มีประสิทธิภาพในการใช้ตัวกรองหลายตัวกับแพนด้า DataFrame หรือซีรี่ส์
ฉันมีสถานการณ์ที่ผู้ใช้ต้องการใช้ตัวกรองหลายตัวกับวัตถุ Pandas DataFrame หรือชุดข้อมูล โดยพื้นฐานแล้วฉันต้องการโยงกลุ่มการกรอง (การดำเนินการเปรียบเทียบ) เข้าด้วยกันอย่างมีประสิทธิภาพซึ่งระบุไว้ ณ เวลาใช้งานโดยผู้ใช้ ตัวกรองควรเป็นสารเติมแต่ง (รู้จักกันว่าตัวกรองแต่ละตัวที่ใช้ควรทำให้ผลลัพธ์แคบลง) ขณะนี้ฉันกำลังใช้reindex()แต่สิ่งนี้สร้างวัตถุใหม่ทุกครั้งและคัดลอกข้อมูลพื้นฐาน (ถ้าฉันเข้าใจเอกสารอย่างถูกต้อง) ดังนั้นสิ่งนี้อาจไม่มีประสิทธิภาพจริง ๆ เมื่อกรองชุดข้อมูลขนาดใหญ่หรือ DataFrame ฉันคิดว่าการใช้apply(), map()หรือสิ่งที่คล้ายกันอาจจะดีกว่า ฉันค่อนข้างใหม่กับนุ่น แต่ก็ยังพยายามห่อหัวของฉันกับทุกสิ่ง TL; DR ฉันต้องการใช้พจนานุกรมของแบบฟอร์มต่อไปนี้และใช้การดำเนินการแต่ละอย่างกับวัตถุ Series ที่กำหนดและส่งคืนวัตถุซีรี่ส์ 'กรอง' relops = {'>=': [1], '<=': [1]} ตัวอย่างที่ยาวนาน ฉันจะเริ่มต้นด้วยตัวอย่างของสิ่งที่ฉันมีในปัจจุบันและเพียงแค่กรองวัตถุชุดเดียว ด้านล่างเป็นฟังก์ชั่นที่ฉันใช้อยู่: def apply_relops(series, relops): """ Pass dictionary of relational operators to perform on given series …
148 python  algorithm  pandas 

30
คุณจะคำนวณค่าเฉลี่ยของชุดข้อมูลวงกลมได้อย่างไร
ฉันต้องการคำนวณค่าเฉลี่ยของชุดข้อมูลแบบวงกลม ตัวอย่างเช่นฉันอาจมีหลายตัวอย่างจากการอ่านเข็มทิศ ปัญหาของหลักสูตรคือวิธีจัดการกับปัญหาที่เกิดขึ้น อัลกอริทึมเดียวกันอาจมีประโยชน์สำหรับหน้าปัดนาฬิกา คำถามจริงมีความซับซ้อนมากขึ้น - สถิติหมายถึงอะไรในทรงกลมหรือในพื้นที่พีชคณิตซึ่ง "ล้อมรอบ" เช่นกลุ่มเสริม mod n คำตอบอาจไม่ซ้ำกันเช่นค่าเฉลี่ยของ 359 องศาและ 1 องศาอาจเป็น 0 องศาหรือ 180 แต่สถิติ 0 ดูดีกว่า นี่เป็นปัญหาการเขียนโปรแกรมจริงสำหรับฉันและฉันพยายามทำให้มันดูไม่เหมือนปัญหาคณิตศาสตร์
147 algorithm  math  geometry 

18
วิธีตรวจสอบว่ามีสองรายการที่เหมือนกันแบบวงกลมใน Python หรือไม่
ตัวอย่างเช่นฉันมีรายการ: a[0] = [1, 1, 1, 0, 0] a[1] = [1, 1, 0, 0, 1] a[2] = [0, 1, 1, 1, 0] # and so on พวกเขาดูเหมือนจะแตกต่างกัน แต่ถ้ามันควรจะเชื่อมต่อจุดเริ่มต้นและจุดสิ้นสุดแล้วพวกเขาจะเหมือนกันแบบวงกลม ปัญหาคือแต่ละรายการที่ฉันมีความยาว 55 และมีเพียงสามคนและศูนย์ 52 ในนั้น ไม่มีเงื่อนไขแบบวงกลมมีรายการ 26,235 (55 เลือก 3) อย่างไรก็ตามหากมีเงื่อนไข 'เวียน' อยู่ก็จะมีรายการที่เหมือนกันเป็นวงกลมจำนวนมาก ขณะนี้ฉันตรวจสอบตัวตนแบบวนโดยทำตาม: def is_dup(a, b): for i in range(len(a)): if …
145 python  algorithm 

23
วิธี Pythonic เพื่อตรวจสอบว่ารายการเรียงลำดับหรือไม่
มีวิธี pythonic เพื่อตรวจสอบว่ารายการเรียงแล้วASCหรือDESC listtimestamps = [1, 2, 3, 5, 6, 7] สิ่งที่ต้องการisttimestamps.isSorted()ผลตอบแทนที่หรือTrueFalse ฉันต้องการที่จะป้อนรายการของการประทับเวลาสำหรับข้อความบางส่วนและตรวจสอบว่าการทำธุรกรรมที่ปรากฏในลำดับที่ถูกต้อง

12
ทำไมทุกคนจะใช้ชุดแทน unordered_set
C ++ 0x กำลังแนะนำunordered_setซึ่งมีอยู่ในboostและที่อื่น ๆ อีกมากมาย สิ่งที่ฉันเข้าใจคือunordered_setตารางแฮชที่มีO(1)ความซับซ้อนในการค้นหา ในทางตรงกันข้ามsetไม่มีอะไรเลยนอกจากต้นไม้ที่มีlog(n)ความซับซ้อนในการค้นหา ทำไมทุกคนบนโลกจะใช้setแทนunordered_set? เช่นมีความต้องการsetอีกต่อไปหรือไม่

14
วิธีการคำนวณความซับซ้อนของการค้นหาแบบไบนารี
ฉันได้ยินบางคนบอกว่าเนื่องจากการค้นหาแบบไบนารีจะลดการป้อนข้อมูลลงในการค้นหาจึงเป็นอัลกอริธึม log (n) เนื่องจากฉันไม่ได้มาจากภูมิหลังทางคณิตศาสตร์ฉันจึงไม่สามารถเกี่ยวข้องกับมันได้ บางคนสามารถอธิบายรายละเอียดเพิ่มเติมได้หรือไม่ มันต้องทำอะไรกับซีรี่ส์ลอการิทึมหรือไม่?

8
คุณลักษณะการแนะนำของ Amazon ทำงานอย่างไร
เทคโนโลยีใดบ้างที่อยู่ด้านหลังหน้าจอของเทคโนโลยีแนะนำของ Amazon ฉันเชื่อว่าคำแนะนำของ Amazon ปัจจุบันดีที่สุดในตลาด แต่พวกเขาจะให้คำแนะนำที่เกี่ยวข้องเช่นนั้นกับเราได้อย่างไร เมื่อเร็ว ๆ นี้เราได้มีส่วนร่วมกับโครงการแนะนำประเภทที่คล้ายกัน แต่ต้องการทราบเกี่ยวกับเทคโนโลยีแนะนำของ Amazon โดยเฉพาะจากมุมมองทางเทคนิค อินพุตใด ๆ จะได้รับการชื่นชมอย่างมาก ปรับปรุง: สิทธิบัตรนี้อธิบายถึงวิธีการแนะนำในแบบของคุณ แต่มันไม่ได้เป็นเรื่องเทคนิคมากนักและมันจะดีมากถ้ามีข้อมูลเชิงลึก จากความคิดเห็นของ Dave การวิเคราะห์ความสัมพันธ์เป็นพื้นฐานสำหรับเครื่องมือแนะนำประเภทนั้น นอกจากนี้ที่นี่มีการอ่านที่ดีในหัวข้อ เข้าใจการวิเคราะห์ตะกร้าตลาดอย่างชัดเจน การวิเคราะห์ตะกร้าตลาด การวิเคราะห์ความสัมพันธ์ การอ่านที่แนะนำ: การทำเหมืองข้อมูล: แนวคิดและเทคนิค

18
อัลกอริทึมในการตรวจหาจุดตัดของสองรูปสี่เหลี่ยม?
ฉันกำลังมองหาอัลกอริทึมเพื่อตรวจสอบว่าสี่เหลี่ยมสองรูปตัดกันหรือไม่ ทดสอบว่ามุมหนึ่งอยู่ในอีก ALMOST หรือไม่ มันจะล้มเหลวถ้ารูปสี่เหลี่ยมสร้างรูปร่างคล้ายกากบาท ดูเหมือนว่าเป็นความคิดที่ดีที่จะหลีกเลี่ยงการใช้ความชันของเส้นซึ่งต้องใช้ตัวพิมพ์พิเศษสำหรับเส้นแนวตั้ง

14
วิธีที่มีประสิทธิภาพในการแทรกตัวเลขลงในอาร์เรย์ที่เรียงลำดับของตัวเลขได้หรือไม่
ฉันมีอาร์เรย์ JavaScript ที่เรียงลำดับแล้วและต้องการแทรกอีกหนึ่งรายการลงในอาร์เรย์ดังนั้นอาร์เรย์ที่ได้จะยังคงเรียงลำดับอยู่ แน่นอนฉันสามารถใช้ฟังก์ชั่นการแทรกสไตล์ quicksort ง่าย ๆ : var array = [1,2,3,4,5,6,7,8,9]; var element = 3.5; function insert(element, array) { array.splice(locationOf(element, array) + 1, 0, element); return array; } function locationOf(element, array, start, end) { start = start || 0; end = end || array.length; var pivot = parseInt(start + …

22
ใช้กองซ้อนโดยใช้สองคิว
คำถามที่คล้ายกันก็ถามว่าก่อนหน้านี้มีแต่คำถามที่นี่เป็นสิ่งที่ตรงกันข้ามของมันใช้สองคิวเป็นกอง คำถาม... ได้รับสองคิวกับการดำเนินงานมาตรฐาน ( enqueue, dequeue, isempty, size) ใช้กองกับการดำเนินงานมาตรฐาน ( pop, push, isempty, size) ควรมีโซลูชันสองรุ่น เวอร์ชันA : สแต็กควรมีประสิทธิภาพเมื่อกดไอเท็ม และ เวอร์ชันB : สแต็กควรมีประสิทธิภาพเมื่อเปิดไอเท็ม ฉันสนใจอัลกอริทึมมากกว่าการใช้ภาษาเฉพาะใด ๆ อย่างไรก็ตามฉันยินดีต้อนรับวิธีแก้ปัญหาที่แสดงเป็นภาษาที่ฉันคุ้นเคย (ชวา,ค#,หลาม,VB,จาวาสคริปต์,PHP)

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