百钱买百蛋算法
我国古代有一数学书,记载着一道算术题“百钱买百蛋”。题目意是:鸭蛋一个三文钱,鹅蛋一个六文钱,鸡蛋一文钱三个,百钱买百蛋,各得几何。对于这种题目,可以考虑使用不定式方程组求解,可是只能列两个方程,却有三个未知数,显然没法求解,只能另寻它法。
#设鹅蛋、鸭蛋、鸡蛋各买x只、y只、z只,于是有:
x + y + z = 100
6x + 3y + 1/3z = 100
#两个方程,三个未知数,无解
对于这个问题,同宗族的一位退休教师老爷爷做了不少研究,同时结合同乡几位资深教师的经验,整理总结了该问题的一般解法:
- 调补法
- 比例法
- 消元法
老爷爷根据这些解题经验归纳出寻找调解数的规律,使之能轻松解答各类百钱买百蛋的问题,实在精妙绝伦。这里我使用排列组合的思想,并尝试使用程序“暴力”破解答案,Python代码如下:
#!/usr/bin/python