【IQ题】三人行 组合问题
问题来自 阿里巴巴 技术岗位的一道笔试题:
有个学校的15个女生一直3个一群上学。请问该如何安排才能使这些女生每周7天每天都和两个不同的同伴结伴同行呢?例如:用A到O来标识这些女孩,7天A正好和B到O这14个女孩各同行一次。而B到O每个人和都和其他14个女孩各同行一次。
这道问题看起来好像挺简单的,但做起来真好不搞.研究了两个小时,总结一下...
其实解题思路就是要你找出所有的三人组合,而且这个三人组合里面不能有重复过的两人组合.
15×14×13
三人组合所有情况:C315=------------------ = 35 × 13 种
3×2×1
但是,三人组合显然不是我们想要的,因为里面有太多的重复了
题目要的就是每两个人之间在一起只出现过一次,所以先考虑二人组合
15×14
二人组合所有情况:C215=------------------ = 15 × 7 种
2×1
就好比如题目的A~O标号同学,对于二人组合,就有
AB,AC,AD,AE,AF,AG.......AM,AO;
BC,BD,BE,BF,BG......BM,BO;
.........
NM,NO;
MO;
然后通过研究得出了以下几点结论:
结论1.
三人行, 说明是这三个人的组合,是三个组合, 而且成为了一个环.
就比如 ABC 这三个同学吧, 他就是AB,BC,AC这三个组合而来的一个环.
同样,ADE这三个同学,就是有二人组合可能性里面的AD,DE,AE构成的.
至于为什么要说他是一个环?
这个很重要,真的.......我一开始忽略了一点,就随便拿起来就组合...结果多出了几个剩男剩女..(不
上面题目说了,组合只能出现一次,
比如你最后多出了EI,FH,CE,CH,BF,BI,这里六个组合,理应还能再组成两队人的.
可惜不成环,所以就失败了.
结论2.
三人行问题,先求出二人组合,二人组合搭配数整除3,得出的就是可行的不同组合.
题目的15人求三人行.二人组合有105种,除3之后就是最多有35个环,刚好5组×7天 =35
题目得解.
不能整除3的话,呵呵!
结论3.
每一个三人组合,是三个二人组合连接而成.同时,每一个同学,在这三个二人组合里面,都出现了2次.
比如ABC这个三人组合,是由AB,AC,BC这三个二人组合而来的.同时A出现了2次,B出现了2次,C也出现了2次...
听上去好像很白痴的结论,其实这个很重要.
我就换个问题说吧,假如把题目的15个人改成6个人里面求三人行的组合呢?
咋一算,
6×5
二人组合所有情况:C215=------------------ = 3 × 5 种
2×1
再除以3,得到5个环.按照结论2来说应该有5个环,就是可以有五种组合才对.
可不,你可以尝试用ABCDEF这六个代号去试试画连通图.
假如ABC成了一个环, ADE成了一个环, AF就是剩男剩女了.
上面就说了,一个环内的一个代号至少出现两次.
ABC中A在AB,AC出现. ADE中在AD,AE中出现.
那么AF无论跟谁怎么组合,都不可能成环了.
所以结论就是总人数必须是奇数才不会有人多出来.
解决方法这么一来就有很多了,可以用广度搜索树,可以用队列,也可以用图...
为了怕麻烦就换个简单点的数据.比如9个人求三人行的组合可能情况.
首先 ,根据结论1
9×8
二人组合所有情况:C2 9=------------------ = 36 种
2×1
由结论2得出 36÷3=12 ,说明理应可以构成12个环
9个人是奇数,也满足结论三.
标号 ABCDEFGHI
组合的可能情况
ABC ADE AFG AHI
BDF BEI BGH (第二个为啥不是BEG呢,因为BHI是不行的,要跳着来组合,学着点)
CDH CEG CFI
DGI EFH
三人组合所有情况:C315=------------------ = 35 × 13 种
3×2×1
【IQ题】三人行 组合问题相关推荐
- 微软面试IQ题~~(转载)
微软面试IQ题~~(转载) 1.烧一根不均匀的绳子,从头烧到尾总共需要1个小时,问如何用烧绳子的方法来确定半 小时的时间呢? 2.10个海盗抢到了100颗宝石,每一颗都一样大小且价值连城.他们决定这么 ...
- 毕业论文排版(七)-题注组合
毕业论文排版(七)-题注组合 子墨居士 前言 由于排版的问题,有的图片表格需要随时移动,会导致图表和题注的脱离乱序,非常麻烦,小编在这里分享两种方法来解决这类问题. 一.图题与图片组合 图片和图题组合 ...
- 学界 | DeepMind想用IQ题测试AI的抽象思维能力,进展还不错
来源:大数据文摘 摘要:抽象理解能力一直是人类引以为豪的智慧来源. 阿基米德基于对物体体积的抽象理解,悟到了物体的体积与物体浮力之间的关系.这就是抽象推理的魔力. 基于神经网络的机器学习模型取得了惊人 ...
- Leetcode 每日一题 40 组合2
题目描述 给定一个数组 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合. candidates 中的每个数字在每个组合中只能 ...
- [Leetcode][第77题][JAVA][组合][回溯]
[问题描述][中等] [解答思路] 1. 回溯 class Solution {List<List<Integer>> lists = new ArrayList<> ...
- 算法题 硬币组合问题
原文:http://www.cnblogs.com/python27/archive/2013/09/05/3303721.html 问题描述 假设我们有8种不同面值的硬币{1,2,5,10,20,5 ...
- 全国大学生英语竞赛培训:听力、词汇语法、完形填空、阅读理解、翻译、改错、IQ题、大小作文、语法等部分快速得分、备战策略和获奖技巧讲解!
目 录 大学生英语竞赛培训--介绍.学习网址 PPT课件.视频--下载 [2020-04-05]P1 如何准备大学生英语竞赛才能拿奖?2:27:54[竞赛简介vs赛前准备] [2020-04-11 ...
- LeetCode第 377 题:组合总数 IV(C++)
377. 组合总和 Ⅳ - 力扣(LeetCode) 先看这个图,就明白很多了,相当于计算叶子节点数量. 其实这题更容易想到dfs回溯,但是重复子问题太多的话,可能会超时,所以最好使用dp. 参考:希 ...
- [Leetcode][第39题][JAVA][组合总和][回溯][dfs][剪枝]
[问题描述][中等] [解答思路] 1. 回溯 import java.util.ArrayDeque; import java.util.ArrayList; import java.util.De ...
- 【测验6 编程题】: 组合数据类型 (第6周)
第一题 数字不同数之和 描述 ...
最新文章
- java 存入对象io_Java面向对象 IO (一)
- windows 安装与使用redis
- MyBatis 源码解读-loadCustomVfs(settings)
- 线程魔术技巧:Java线程可以做的5件事
- 小b和排序(51Nod-2484)
- Jupyter Notebook 转pdf 中文处理
- ThinkPHP中,字段更新加1的几种写法
- Spring MVC 之 请求url 带后缀的情况
- Cisco vlan + vtp 配置实例
- Python 之匿名函数和偏函数
- php中读取文件内容的几种方法。(file_get_contents:将文件内容读入一个字符串)...
- 电子元件 —— 继电器
- 编译OpenJDK12:test_json.cpp error C2143 语法错误
- 网络安全技术心得体会
- 如何在程序中调用Bartender软件打印文件模板
- php 时间 增加天数,php实现当前时间加天数的方法
- hal库GPIO函数
- 201819102040张辰飞
- 视频剪辑没素材?一定要收藏这几个网站。
- 7-3 地下迷宫探索(30 分)(dfs)
热门文章
- 2022-2027年中国网络财经信息服务行业发展监测及投资战略研究报告
- UMLChina《软件方法》强化自测题业务建模(2)答案
- Python爬取科比职业生涯高清图集
- 金禾水田文化公园春耕大典暨一亩皇家田品牌发布会活动纪实
- 计算机无响应 win7,Win7电脑关机没反应怎么办?教您解决方法
- 【工具】失传的2个全自动客流爆破工具?(下)
- weka软件的使用,CBR非偶然性规划
- 自媒体视频如何原创?自媒体原视频制作流程,5步就够了
- Raise3D复志科技与Xometry择幂科技达成战略合作,共创柔性制造新时代
- 微型计算机转移指令,武汉邮科院考研用的微型计算机系统原理及应用第三..._考研_帮考网...