如果給出一組位置在y軸上的數字,我如何找到y軸上與該組數字的總體差異最小的位置。例如,如果給出數字1 8 3 6 2 7,它應該返回數字5,因爲它在15處的總差異最小。它必須是分而治之的方法。我不需要代碼我需要一個解釋。如何使用分而治之算法在y軸上找到最佳線條?
0
A
回答
0
讓我們以你的例子:1 8 3 6 2 7
。我假設我們正在尋找一個整數的答案。
答案必須在最小和最大的數字之間。 0的差值總和大於1. 8的差值總和小於9.
用你的例子,結束界限是1和8.把它們加在一起,整數除以2.這給了我們4。或者,作爲替代方法,將所有數字相加併除以數量。以你爲例,總和爲27.整數除以6得到4.
4的差異之和是15.首先,讓我們回過頭來看看答案是否更小。
3的差異之和是15.所以,讓我們再次備份。
2的差異總和爲17.我們不必再往這個方向走。所以,從4.
向另一個方向5的差異總和是15.所以,讓我們繼續前進。
6的差異總和是15.再次,讓我們繼續前進。
的7差異的總和爲17
所以,最後的答案是3,4,5或6。我不知道你如何選擇一個是正確答案。
在這種情況下,我們可以檢查1到8之間的所有數字。但是當整數變得更大,比如1000時,這種分治法更快。
0
排序數字。你可以使用分而治之的算法。
然後最佳線位於中間的數字或兩個中間數字之間的任意位置,如果偶數的話。
請注意,在你的榜樣,3,4,5,6 所有有15
總差爲什麼這個工程:
如果你有n
號碼上方的線和m
數字在您的線下,並且您將線移動'x',那麼總差異的變化爲m*x - n*x
。所以如果你的線路有更多的數字,那麼你應該把它移動。如果它下面有更多的數字,那麼你應該把它移下來。當它具有相同的數字時,它是最優的。
相關問題
- 1. 分而治之算法:找到一個矩陣的最小值
- 2. 分而治之算法
- 3. 分而治之算法
- 4. 分而治之算法
- 5. 算法:找到分而治之算法的遞歸方程
- 6. 如何在C#中使用多線程實現分而治之算法?
- 7. java中的分而治之算法
- 8. 分而治之算法的並行性
- 9. 學習分而治之算法
- 10. 如何使用主定理來計算遞歸,分而治之
- 11. 分而治之
- 12. 查找「分而治之」算法的數組索引?
- 13. 分而治之法peakFinder
- 14. 如何在一條線上找到最佳位置點?
- 15. 如何高效並行化分而治之算法?
- 16. 如何使用主成分分析找到最佳擬合線?
- 17. 分而治之,找到數組中的最大差異
- 18. Y軸在線圖上的最大值
- 19. 分而治之:IndexSearch
- 20. HTML分而治之
- 21. 用於查找x軸上非重疊線條的最大數量的算法
- 22. 如何繪製基於Y軸的第二條曲線而第一條曲線基於Y軸?
- 23. 分而治之算法(應用二進制搜索?!)
- 24. 算法:分而治之(應用快速排序?!)
- 25. 中間點而治之算法實現
- 26. 遞歸,分而治之算法,用於最長的非減少數字數組
- 27. Maxsub陣列使用分而治之
- 28. chart.js之開關X/Y軸線圖上
- 29. 最近的一對點使用分而治之算法來計算在合併階段只有6點
- 30. 查找最大總和子列表和總結分而治之