首页 > 解决方案 > 如何在一群人中找到一个家庭

问题描述

假设我有一组潜在的家庭成员。我将家庭定义为一组个体,其中包含一个或两个成年人(18 岁以上)和最多 9 个孩子(24 岁以下),但条件是每个孩子必须至少比 15 岁小两个大人。

一个例子:

id: 1    age: 14
id: 2    age: 25
id: 4    age: 6
id: 5    age: 35
id: 6    age: 50
id: 7    age: 44

潜在的家庭将是:

{1, 4, 5, 6}, {1, 4, 5, 7}, {1, 4, 6, 7}, {14, 25, 6, 6, 7}, ...

我想找到集合的每个家庭子集。由于这个年龄间隔,我真的不知道如何进行,这对每一对人来说都是特定的。我真的不知道如何从中形成子集。

在下一步中,我将选择成员最多的家庭。先感谢您

标签: algorithmsetgroupingsubset

解决方案


寻找成员最多的家庭的算法

  1. 排序年龄
  2. 取 2 个最高年龄(称为:P1、P2)
  3. eldestChildAge找到排序年龄中调用的最高年龄的索引,其中age <= Min(P1, P2) - 15
  4. 现在考虑排序后年龄小于eldestChildAge该族的所有元素(最多包括eldestChildAge9 个)

希望这能帮助你理解。


推荐阅读