簡體   English   中英

試圖創建類似於PHP中的近似子集和表的算法

[英]trying to create an algorithm similar to an approximate subset-sum table in PHP

我一直試圖在PHP中構造一種在某種程度上類似於子集和問題的算法,但是在這種情況下,我不是在尋找精確匹配,而只是在尋找最接近的匹配,因為在大多數情況下,完全匹配。

讓我詳細說明一下。 假設我擁有各種假設的投資,並且需要從現有投資中籌集總和X。 假設X = 40000。

輸入數組為(4500、8750、12900),每個輸入的數量為(8、10、10)。

現在,我可以直觀地算出4500 * 8 = 36000,12900 * 3 = 38700,但是更接近的匹配將是(4500 * 6)+ 12900 = 39900。

我很快發現,嘗試遍歷每種可能的組合會迅速創建百萬個可能的數組中的10個(即使添加了額外的輸入)。 如果僅出於我自己的目的,但對於Web應用程序不可行,那將不是問題。

我不要求任何人為我編寫代碼。 我不是數學家,所以我想知道是否有其他方法可以解決此問題,或者至少是其中的捷徑?

謝謝。

這是一個眾所周知的問題,稱為“背包問題”,可以通過動態編程方法解決。

https://en.wikipedia.org/wiki/Knapsack_problem

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM