gpt4 book ai didi

ruby - 如何从数组中获得优化选择

转载 作者:数据小太阳 更新时间:2023-10-29 08:27:04 26 4
gpt4 key购买 nike

我有几个哈希数组(假设我有三个)如下:

a = [{ cost: 10, value: 20},
{ cost: 9, value: 20},
{ cost: 10, value: 22},
{ cost: 2, value: 10}
]

b = [{ cost: 4, value: 20},
{ cost: 9, value: 20},
{ cost: 15, value: 22},
{ cost: 12, value: 10}
]

c = [{ cost: 10, value: 21},
{ cost: 9, value: 20},
{ cost: 10, value: 22},
{ cost: 3, value: 10}
]

我需要找出哪个哈希选择,每个数组中的一个,给我 :value 的最大总和,使 :cost 的总和保持在给定值以下(假设 30)。

这个案例的答案可能很简单,只是看看它,但这只是样本数据,实际上我有更多的数组。有人可以帮助我或指出正确的方向吗?

编辑:我还应该提到我想处理这个对象数组。我使用散列作为示例,因为它更容易描述,但我打算使用对象。此外,如果从一个数组中使用一个对象,我希望其他数组中不使用相同的选项,因此每个选定的对象都应该是唯一的。

最佳答案

这是一个单行:

a.product(b,c).select{ |arr| arr.reduce(0) { |sum,h| sum + h[:cost] } < 30 }.max_by{ |arr| arr.reduce(0){ |sum,h| sum + h[:value]} }

有点破:

a.product(b,c)
.select{ |arr| arr.reduce(0) { |sum,h| sum + h[:cost] } < 30 }
.max_by{ |arr| arr.reduce(0) { |sum,h| sum + h[:value] } }

关于ruby - 如何从数组中获得优化选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25984485/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com