有没有一种有效的方法来生成 N 个整数的随机组合,使得——
min, max] 中,sum,是否有类似的随机组合算法,其中整数必须按其值(而不是任何顺序)按排序顺序出现?
(选择具有平均值的适当组合mean是一种特殊情况,如果sum = N * mean。这个问题相当于生成sumN 个部分的均匀随机分区,每个部分都在区间 [ min, max] 中并以任何顺序出现或按它们的排序顺序出现值,视情况而定。)
我知道对于以随机顺序出现的组合,可以通过以下方式解决此问题(编辑 [Apr. 27]:算法修改。):
我有一张桌子
items
id int unsigned auto_increment primary key,
name varchar(255)
price DECIMAL(6,2)
Run Code Online (Sandbox Code Playgroud)
我希望从这张表中获得至少30个随机商品,其中总价格等于500,实现这一目标的最佳方法是什么?
我已经看到这个看起来有类似问题的解决方案MySQL选择3个随机行,其中三行的总和小于值
我想知道是否有任何其他解决方案更容易实现和/或更高效