java list 平均值函数_java - 根据一组汇总(总和,平均值等)构建具体列表

我正在尝试编写一个函数,它获取有关数字(货币)列表的一些聚合信息,并返回具有这些属性的具体列表。例如,我要一个平均值265.43美元,总额6000美元,最高1000美元的清单,我会得到一个完整的清单作为回报,其价值平均值265.43美元,总额6000美元,等等。可能有很多清单可以满足这些属性,但我不需要一一列举,我只需要返回其中的任何一个。

以下是列表的属性:

它的长度是N

总共是S

平均值是

最低的数字是l

最高的数字是h

它符合美元区间的细分:

X值小于75美元

Y值在75到200美元之间

Z值大于200美元

我想为这些参数中的每一个传递值,并返回一个与它们匹配的列表。我有几百个这样的集合{N,S,a,L,H,X,Y,Z}但是我没有用来生成它们的任何支持列表我不需要生成的列表与原始列表完全相同,我只需要从聚合的角度看它们与原始列表相同。

我想这样称呼它-->list=gimmathalist(n,s,a,l,h,x,y,z)

我不知道从哪里开始寻找这方面的信息,所以任何帮助都是值得赞赏的,即使它只是一个链接或谷歌搜索词。如果你能抽出时间,一些真正的代码会很好,但我会尽我所能。

最佳答案

一些想法:

N是多余的,因为它是x、y和z的和

A是多余的,因为它等于S / N

L和H可以用X、Y和Z子集的广义价格范围条件代替您可以假设这些值出现在列表中,并通过相应地调整X、Y和Z来解决缩减问题(S' = S - L - H, 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范围的单个和上下界),我们还可以生成该范围内的每个和,包括

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值