問題已解決
一組數據里面求和指定數據的組合嗎,比如我想查找哪些數據求和等于1萬,這個誰知道



同學,你好
對于給定一組數據,尋找滿足特定條件的數據組合求和等于1萬這個問題,可以通過編程或數學算法來解決。這個過程叫做組合總和問題,在計算機科學中有多種解決方案,比如回溯算法、動態規劃等。
如果你具體有一組數據,可以使用編程語言(如Python)編寫代碼來解決這個問題。以下是一個簡單的示例代碼,展示了如何使用回溯算法在給定的數據中找到和為1萬的組合:
def?find_combinations(nums,?target):
????result?=?[]
????current?=?[]
????def?backtrack(remaining,?start):
????????if?remaining?==?0:
????????????result.append(list(current))
????????????return
????????if?remaining?<?0:
????????????return
????????for?i?in?range(start,?len(nums)):
????????????current.append(nums[i])
????????????backtrack(remaining?-?nums[i],?i)
????????????current.pop()
????backtrack(target,?0)
????return?result
data?=?[100,?200,?300,?400,?500,?600,?700,?800,?900,?1000]target_sum?=?10000combinations?=?find_combinations(data,?target_sum)print(combinations)
請注意,這只是一個簡單的示例代碼,并不考慮性能或復雜度的優化。如果你具體的數據集較大或需求較為復雜,可能需要更精細的算法設計。
2023 09/16 14:20

84785043 

2023 09/16 14:21
我能把EXCEL表發你,你幫我看看嗎

Anan老師 

2023 09/16 14:22
可以,但是老師也是試試,不能保證

84785043 

2023 09/16 14:23
有QQ郵箱嗎,我發給您,幫我看下

Anan老師 

2023 09/16 14:25
同學,
以下為郵箱地址~~~:
215411588@**.com

84785043 

2023 09/16 14:31
資料已經發過去了

Anan老師 

2023 09/16 14:35
好的,收到了,我先查看下,如有問題我們再溝通

84785043 

2023 09/16 15:55
你好,我的表格研究出來了嗎

Anan老師 

2023 09/16 15:56
同學,我這會有點急事在外面,晚上回去研究下~,可以嗎?

84785043 

2023 09/16 15:58
好的,謝謝

84785043 

2023 09/17 06:17
老師昨天研究咋樣?

Anan老師 

2023 09/17 07:51
同學,你好
昨天晚上研究一晚上,之前的方法實際操作上有點問題,我再試試別的方法

Anan老師 

2023 09/17 08:02
我正在用高級篩選或者求和約束試試~·

Anan老師 

2023 09/17 10:54
同學,老師咨詢了專業人士:匹配發貨金額和收款金額,以使一些發貨金額的部分之和等于另一個收款金額,可以嘗試使用以下步驟進行匹配:
1.將發貨金額和收款金額數據輸入到Python中,可以使用pandas庫來處理和分析數據。
2.對于每個收款金額,找到所有發貨金額的組合,使得它們的部分之和等于該收款金額。可以使用遞歸或迭代的方法來找到所有可能的組合。可以考慮使用回溯算法或動態規劃方法來解決這個問題。
3.在找到匹配的組合后,可以將這些組合記錄下來,以便后續使用。你可以創建一個數據結構來存儲匹配的發貨金額和收款金額的對應關系,例如使用字典或DataFrame。
使用回溯算法來找到發貨金額和收款金額的匹配組合:
import?pandas?as?pd#?讀取數據data?=?pd.read_excel(your_data.xlsx)??#?從Excel中讀取數據,假設數據包含兩列:發貨金額和收款金額#?目標收款金額target_payment?=?1000?#?存儲匹配組合matches?=?[]#?回溯算法def?find_matches(remaining_amt,?curr_match):
????if?remaining_amt?==?0:
????????matches.append(curr_match.copy())
????elif?remaining_amt?<?0:
????????return
????else:
????????for?i,?row?in?data.iterrows():
????????????shipping_amt?=?row[發貨金額]
????????????if?shipping_amt?<=?remaining_amt:
????????????????curr_match.append((shipping_amt,?row[收款金額]))
????????????????find_matches(remaining_amt?-?shipping_amt,?curr_match)
????????????????curr_match.pop()#?開始匹配find_matches(target_payment,?[])#?打印匹配結果for?match?in?matches:
????print(發貨金額??收款金額)
????for?s_amt,?p_amt?in?match:
????????print(f{s_amt}t{p_amt})
????print(=*15)
我在嘗試安裝某些軟件來完成,也依然不能保證,你也可以試著研究下,我們互相探討~
希望這能幫到你!如果有任何進一步的問題,請隨時提問。

84785043 

2023 09/17 11:23
老師能幫忙直接處理好嗎

Anan老師 

2023 09/17 11:29
我在嘗試想辦法,在試。。

Anan老師 

2023 09/17 11:55
同學,你好
首先,兩邊的金額合計不相等,不好匹配,另外,有沒有對應的別的比如單號或者合同號等信息。

84785043 

2023 09/17 12:19
沒有老師

Anan老師 

2023 09/17 12:44
老師今天先研究,也找了別的老師再幫忙看,最終行或不行。。。看嘗試的結果把
