大家好,我的需求是首先在表格内选中一个区域,区域内每个单元格各有一个数字。首先输入一个数值,然后由程序算出选中区域内哪些数字相加为这个值并给出相关提示标记。我在动作库看了一圈没有相关的动作,麻烦大家给点建议。谢谢。
输入值5706.5,提示此三项求和为5706.5。
什么场景会有这样的需求? 介绍一下背景信息...
排列组合可能性太多了。
这种情况目前是怎么解决?
就是先扔着 把其他能挑的挑出来 剩下的慢慢找 凭感觉 通过尾数或者小数点后面的数对照着找
不能直接联系他们补个清单嘛
沟通过 很麻烦 涉及到的人员和地方太多了 一言难尽呀
感觉即使匹配到了,也可能是错的,比如有1+4 和 5 ,得到的结果是一样,但是可能并不是最初实际对应的订单。
感觉这涉及到算法范畴了
个人建议提取数据然后丢给AI查找然后再回来标记
可以可以 也是个办法
这个动作其实没有那么复杂.首先确定,
用1个项进行计算.找到等于=5706.5用2个项,全部进行加计算,找到=5706.5 的项
用3个项,全部都相互计算,找到得出=5706.5的
用4个项,全部相互+计算,找到等于5706.5的
以此类推,图中有8项.做八次项,这种基本上包含了所有的组合加的结果.人做不了,机器做的了,机器计算能力超强,超快.
https://getquicker.net/Sharedaction?code=158bbb69-c590-4af9-ce0b-08d99cd13b42
我靠牛批,和我想的一模一样,但是如果一组数内有多个组合求和等于目标值,是否可以用不同的颜色标记出来呢,类似这样。
这个要复杂一些,还有个问题,如果有一个值在多个解中,就意味着要标记多重颜色了,这个怎么解决
试试求和的解 - - 动作信息 - Quicker
https://getquicker.net/Sharedaction?code=78a8d8c5-29eb-434e-db37-08dc1d7b23f0
完美完美,太尿性了兄弟,赞!
你提到的问题涉及到在一个给定的数字集合中找到所有可能的数字组合,这些数字组合的和等于一个特定的目标数值。
这个问题接近于“子集求和问题”(Subset Sum Problem),它是一个著名的计算机科学问题,属于NP完全问题。简单地说,给定一个集合和一个目标数值,任务是找出是否有集合的一个子集,其元素相加的和等于目标数值。
对于你的具体需求,我们可以采用回溯算法或动态规划来解决这个问题。回溯算法通过尝试每个可能的数字组合来找到所有满足条件的解,而动态规划则是通过构建一个表格来避免重复计算,从而提高效率。
def find_combinations(numbers, target, start=0, path=[], result=[]): if target == 0: result.append(path) return for i in range(start, len(numbers)): if numbers[i] > target: continue find_combinations(numbers, target - numbers[i], i + 1, path + [numbers[i]], result) return result numbers = [1, 2, 3, 4, 5] # 示例数字集合 target = 6 # 目标和 combinations = [] find_combinations(numbers, target, 0, [], combinations) print(combinations)
def is_subset_sum(numbers, target): n = len(numbers) dp = [[False for x in range(target + 1)] for y in range(n + 1)] for i in range(n + 1): dp[i][0] = True for i in range(1, n + 1): for j in range(1, target + 1): if j < numbers[i - 1]: dp[i][j] = dp[i - 1][j] else: dp[i][j] = dp[i - 1][j] or dp[i - 1][j - numbers[i - 1]] return dp[n][target] numbers = [1, 2, 3, 4, 5] # 示例数字集合 target = 6 # 目标和 print(is_subset_sum(numbers, target))