本帖最后由 FreddyMusic 于 2009-7-12 05:51 编辑
四人年龄问题
方法:13 楼的分析是基础。
Mathematica 解线性方程组 + 编程:
- list=Permutations[{45,56,60,71,82}];
- ans={};
- Module[{a,b,c,d,k1,k2,k3,k4,k5,sol,n},
- n=1;
- Do[
- {k1,k2,k3,k4,k5}=list[[n]];
- sol=Solve[{a +b==k1,a+c==k2,a+d==k3,b+c==k4},{a,b,c,d}];
- If[k5==(b+d)/.sol[[1]],ans=Append[ans,list[[n]]]];
- n++,
- {120}]
- ]
- ans
复制代码 Out[16]= {{60,45,56,71,82},{60,45,71,56,82},{60,56,45,82,71},{60,56,82,45,71},{60,71,45,82,56},{60,71,82,45,56},{60,82,56,71,45},{60,82,71,56,45},{82,45,56,60,71},{82,45,60,56,71},{82,56,45,71,60},{82,56,71,45,60},{82,60,45,71,56},{82,60,71,45,56},{82,71,56,60,45},{82,71,60,56,45}}
- Flatten[Table[{k1,k2,k3,k4,k5}=ans[];
- {a,b,c,d}/.Solve[{a +b==k1,a+c==k2,a+d==k3,b+c==k4},{a,b,c,d}],{i,Length@ans}],1]
复制代码 Out[23]= {{17,43,28,39},{49/2,71/2,41/2,93/2},{17,43,39,28},{71/2,49/2,41/2,93/2},{49/2,71/2,93/2,41/2},{43,17,28,39},{71/2,49/2,93/2,41/2},{43,17,39,28},{67/2,97/2,23/2,45/2},{71/2,93/2,19/2,49/2},{67/2,97/2,45/2,23/2},{93/2,71/2,19/2,49/2},{71/2,93/2,49/2,19/2},{97/2,67/2,23/2,45/2},{93/2,71/2,49/2,19/2},{97/2,67/2,45/2,23/2}}
以上是排列组合的答案。
简化一下,基本是
{17, 43, 28, 39}
{49/2, 71/2, 41/2, 93/2}
{67/2, 97/2, 45/2, 23/2}
=======================================
共3 组答案 |