我正在尝试编写一个函数来获取有关数字列表(货币)的一些汇总信息,并返回包含这些属性的具体列表。例如,我会要求一份平均价格为265.43美元,总额为6,000美元,最高金额为1,000美元等的清单。我将获得一份完整清单作为回报,其价值平均为265.43美元,总计为6,000美元等。可能有许多列表满足属性,但我不需要全部枚举它们,我只需要返回其中任何一个。
以下是列表的属性:
我想为每个参数传递值,并返回一个匹配它们的列表。我有几百个这样的集合{N,S,A,L,H,X,Y,Z}但我没有任何用于生成它们的支持列表。我不需要生成的列表与原始列表完全相同,从集合的角度来看,我只需要它们与原始列表相同。
我想这样称呼它 - > list = gimmeThatList(N,S,A,L,H,X,Y,Z)
我不确定从哪里开始查找有关此信息,所以任何帮助都会受到赞赏,即使它只是一个链接或谷歌搜索词。一些真正的代码会很好,如果你可以节省时间,但我会采取我能得到的。
答案 0 :(得分:0)
一些想法:
N
是多余的,因为它是X,Y和Z的总和A
是多余的,因为它等于S / N
L
和H
可以替换为X,Y和Z子集的广义价格范围条件。您可以假设这些值出现在列表中并解决减少的问题(S' = S - L - H, X', Y', Z')
,其中X,Y和Z相应地适应,并且限制列表中的所有数字都落入[L,R] 对于X'值,我们的范围为[L,min(75,H)],对于Y'值[max(75,L),min(H,200)],对于Z'[max(L) ,200),H]
我们可以轻松地计算下限X' * L + Y' * max (75, L) + Z' * max(L, 200)
和我们可以创建的可能总和的上限。使用简单的贪婪算法(留给读者练习,考虑X,Y和Z范围的各个下限/上限),我们也可以生成该范围内的每个总和,包括S'