小学生题目:
小明五次输入四位数的手机密码均错误,但是每次输入的密码中都有两位数字正确,且输入的数字的位置都不正确。求小明正确的四位手机密码。
五次手机密码分别是:
6087 5173 1358 3825 2531
解:
使用排除法推导:
首先,在小明输入的数字中:12356780这八个数字中,选择两个数字,顺向推导。如果推导不顺利,最多需要推导8*8=64次。
…………省略不正确的推导过程。以下是正确的推导过程:
1、若正确的数字为5和3,
由1358 与2531 >>> 5与3在第1位与第4位;
由5173与3825 >>> 5与3在第2位与第3位;
互相矛盾——故正确的密码不包含3和5;
2、因为5与3是错误的数字,
由1358 >>> 8与1是正确的数字,
由2531 >>> 2与1是正确的数字,
由3825 >>> 8与2是正确的数字,
由5173 >>> 7和1是正确的数字,
故知,正确的密码包含的数字为 1,2,7,8。
3、正确的数字为 1,2,7,8
由6087 >>> 8不在第3位,7不在第4位,
由5173 >>> 1不在第2位,7不在第3位,
由1358 >>> 1不在第1位,8不在第4位,
由3825 >>> 8不在第2位,2不在第3位,
由2531 >>> 2不在第1位,1不在第4位,
综合:
1不在第2位 &&
1不在第1位 &&
1不在第4位 ——–故1只能是第3位
8不在第2位 &&
8不在第3位 &&
8不在第4位 ——–故8只能是第1位
7不在第4位 &&
7不在第3位 ——–故7可能在第1位和第2位
又由于第1位为8,故7只能在第2位
2不在第1位 &&
2不在第3位 ——–故2可能在第4位和第2位
又由于第2位为7,故2只能在第4位。
3、最后:
1只能是第3位
8只能是第1位
7只能在第2位
2只能在第4位
知正确的密码:8712
求得晕乎乎。至于为什么一开始就选中正确的数字进行推导,或许有更好的办法,但是我不知道。也许数学就是需要一个具有灵感的脑袋。
很明显,我灵感细胞缺乏,于是动手编程求解:
运行结果:
编程思路1: