【发布时间】:2011-11-14 19:14:26
【问题描述】:
不确定这是否是正确的地方,但我有一个与算法有关的问题,我想不出一个有效的算法。 所以想分享我的问题陈述.. :) 为了简化我试图解释的内容,让我创建一个假设示例。
假设,我有一个列表,其中包含一个包含两个东西的对象..
lets say product id and price
现在,这是一个很长很长的清单……有点像清单…… 为此,我定义了三个价格段.. lowprice、midprice 和 highprice 然后是 k1,k2,k3,其中 k1,k2 和 k3 是比率。 所以,现在的工作是,我必须从这个巨大的库存中收集产品,以便有 n1 个低价格范围的产品,n2 个中等价格范围的产品和 n3 个高价格范围的产品......其中 n1:n2: n3 == k1:k2:k3
现在,我如何有效地实现以下目标。 我的目标是最低价格点是 100 美元 我必须从这个范围内收集 20 种产品.. 中等价格范围可能是 500 美元 等等
所以我从 100 美元开始......然后寻找 90 到 100 之间以及 100 到 110 之间的物品 假设我在区间 1 的低点 (90,100) 找到 5 个产品,在区间 1 的高点 (100,110) 找到 2 个产品 然后,我进入下一个低区间和下一个高区间。 我会一直这样做,直到获得此区间内的产品数量。
我该怎么做?也可能存在这样的情况,当特定价格范围内的产品数量少于我需要的数量时..(可能中间价格范围是 105 美元......)..那么在这种情况下我应该怎么做.. 如果这不是正确的平台,请原谅我。从问题中您可以看出这更像是一个辩论性问题,而不是“我收到此错误”类型的问题。 谢谢
【问题讨论】:
-
如果你对N个项目进行排序,然后根据比例,将N分别分成n1:n2:n3会更容易吗?
-
@AlvinK。嗯..这可能是一种解决方案,尽管我无法真正使用我计算出的一些统计数据..但绝对是一个非常棒的例子,说明了一点假设如何导致简单的编程.. :)