鶴の数を x, 亀の数を y とすると、合計で 12匹なので、
x + y = 12 ... (1) |
また、足の数の合計が 34本なので、
2 * x + 4 * y = 34 ... (2) |
という2元1次連立方程式が得られます。
(1), (2) を行列で表現すると、次のようになります。
1 1 x 12 ( ) * ( ) = ( ) ... (3) 2 4 y 34 |
NIST (National Institute of Standards and Technology) の Jama (A Java Matrix Package) を使って、解いてみます。
$ cat CraneAndTortoise.java import Jama.Matrix; public class CraneAndTortoise { public static void main(String[] args) throws Exception { int n = Integer.parseInt(args[0]); int m = Integer.parseInt(args[1]); Matrix A = new Matrix( new double[][] {{1.,1.},{2.,4.}} ); print(A); Matrix B = new Matrix( new double[][] {{(double)n},{(double)m}} ); print(B); Matrix X = A.solve(B); print(X); } private static void print(Matrix M) { M.print(2,0); } } $ wget http://math.nist.gov/javanumerics/jama/Jama-1.0.2.jar $ javac -classpath Jama-1.0.2.jar CraneAndTortoise.java $ java -classpath .:Jama-1.0.2.jar CraneAndTortoise 12 34 1 1 2 4 12 34 7 5 $ |
鶴(crane)が 7羽、亀(tortoise)が 5匹と、解が求まりました。
Tags: programming