![](/img/trans.png)
[英]React Hooks change single value of object with multiple keys without repetition
[英]Form groups of items, without repetition, that fit a defined value
我很難在谷歌表格上找到一個電子表格的解決方案,javascript 語言。 我看到一些東西,比如分組和丟棄。 但是我仍然無法在精神上組裝任何會產生任何結果的東西。
我需要在數據集中找到符合給定定義值的項目和項目組(總和)。
我有一個定義值的數據表,這是一個示例列表
物品 | 價值 |
---|---|
1 | 100.00 |
2 | 53.50 |
3 | 45.00 |
4 | 67.00 |
5 | 32.50 |
6 | 35.60 |
7 | 34.70 |
我需要形成一組項目,以便它們的總和理想地為 100.00,但它可以接近這個值,甚至更高一點也是可能的,但理想值將達到 (<=)。
預期結果邏輯:
組 1 = 項目 1 值 100.00
第 2 組 = 項目 4 值 67.00 和項目 5 值 32.50(因為總和為 99.50,最接近 100)
第 3 組 = 項目 2 值 53.50 和項目 3 值 45.00(因為總和為 98.50,最接近 100)
第 4 組 = 項目 6 值 35.60 + 項目 7 值 34.70(因為總和為 70.30)
項目的順序或項目組的形成並不重要。 只有項目不能重復。
作為 output 您只需要每個組中的項目。 前任:
1
4 5
2 3
6 7
但如果它有所有的結果,那就太好了(組、項目、總價值)
Group 1 item(s) 1 total value 100.50
Group 2 item(s) 4 5 total value 99.50
Group 3 item(s) 2 3 total value 98.50
Group 4 item(s) 6 7 total value 70.30
我是這么想的,但我還沒有找到怎么做
行動 | 規則 | 結果 |
---|---|---|
檢查項目的最大值,因為 LIMITER 不能低於 | 最大值 | 顯示最大值。 例如:100 |
只要 LIMITER 等於或小於一個 ITEM 的最大值,就設置 LIMITER | <=最大值 | 示例:限制器:100 |
檢查是否有任何 ITEM 的值等於 LIMITER 100 | 價值 == 限制 | 按順序(每個循環中+1)首先為值為100的項目設置組號 |
檢查 ITEM 的總和是否等於 LIMITER 100 | 項目總和 = 限制器的值,不重復已列出的項目 | 按順序(每個循環+1)設置該組項目的數量和值為100 |
檢查是否有任何 ITEM = -0.01 之前的搜索 | 不重復已列出的項目 | 按順序(每個循環+1)設置值低於限制器的項目組的數量 |
檢查任何項目總和是否 = -0.01 哪個先前的搜索 | 項目總和 = 獲取的值,不重復已列出的項目 | 按順序設置(每個循環中+1)值低於限制器的總和項目的組號 |
繼續搜索,直到沒有剩余值 | 不重復已列出的項目 | 將列表設置為最后一個可用項目 |
歡迎任何幫助
我注意到這個問題與背包問題非常相似。 我不是很擅長解釋它,但這里有一些資源比我能更好地解釋它。
https://learnersbucket.com/examples/algorithms/knapsack-problem-in-javascript/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.