【发布时间】:2017-03-03 11:07:36
【问题描述】:
假设我在数据库中有一个Product 表,它具有id 和price 的以下属性:
Product
=======
ProductId int PRIMARY KEY
Price int
为简单起见,我将Price 设为int 数据类型。所以现在我想使用一个随机算法,从数据库中检索n 的记录数,由此Price 的总和将达到固定数量m。
例如:
- n = 5
- m = 100
所以我将检索 5 个 Product 记录,Price 将加起来为 100。
一种可能的结果:
ProductId Price
=====================
5 10
109 27
2081 31
139 21
331 11
======================
Sum: 100
我尝试过蛮力方法,但似乎需要很长时间才能获得正确的 100 总和。有什么算法可以做到这一点吗?
【问题讨论】:
-
你需要先想出所有可能的排列加到 100,然后从那里随机选择。
-
你有这个测试数据库吗?想用它来挑战自己。
-
昨天看到这个也许这个答案可以使用stackoverflow.com/a/42563928/491907