algorithm - 如何在一群人中找到一个家庭
问题描述
假设我有一组潜在的家庭成员。我将家庭定义为一组个体,其中包含一个或两个成年人(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}, ...
我想找到集合的每个家庭子集。由于这个年龄间隔,我真的不知道如何进行,这对每一对人来说都是特定的。我真的不知道如何从中形成子集。
在下一步中,我将选择成员最多的家庭。先感谢您
解决方案
寻找成员最多的家庭的算法
- 排序年龄
- 取 2 个最高年龄(称为:P1、P2)
eldestChildAge
找到排序年龄中调用的最高年龄的索引,其中age <= Min(P1, P2) - 15
- 现在考虑排序后年龄小于
eldestChildAge
该族的所有元素(最多包括eldestChildAge
9 个)
希望这能帮助你理解。
推荐阅读
- c# - 用十六进制设置材质的颜色
- spring-boot - Spring Boot 无法开始使用 Atomikos 并且 JMS MQ 连接失败
- r - 如何映射数据框,这是一个 tidyeval 错误吗?
- sql - 将自定义格式字符串转换为日期
- java - JPA 嵌套映射到没有基表的视图
- swift - tableView 中的步进器,发送了无法识别的选择器
- mysql - 不能将“MAX(CASE WHEN value ='first_name' THEN value END)中的列标签值用作'Förnamn'
- jupyter-notebook - reload 在 jupyter notebook 中不起作用,但在 Ipython 中起作用
- python - 如何设置创建 gen_py 的路径 (win32com.__gen_path__)
- list - 在 Haskell 中过滤具有相同数量的不同元素的列表