首页 > 解决方案 > 是否有一种算法可以选择一组项目,以使结果满足每个属性的所需百分比?

问题描述

图片 我的people数据库中有一张表。此表具有以下列:

eye_color, gender, number_of_children

现在我想随机选择一组people,满足以下条件:

  1. 孩子的总数必须等于 20 ±1
  2. 套装必须是 30% 蓝眼、20% 绿眼和 50% 棕眼 (±5%)
  3. 套装必须是 40% 男性,60% 女性 (±5%)

如果不存在一组人来满足这些要求,我想知道。

标签: algorithm

解决方案


我可以想到两种解决这个问题的一般方法(除了只是尝试直到你幸运地得到正确的结果)。

一种是有一个随机算法来解决在边界上(或尽可能靠近边界)找到一个点的问题。这可能没有很好的随机性。

其次是首先从线性约束中随机选择核心上的一个点,然后查看数据库中是否有足够的此类项目,如果有,则选择其中的一个随机子集,否则随机选择一个新的此类项目点直到你可以完成问题。这里的问题是无限的运行时。


推荐阅读