知恵袋の1次不定方程式の整数解の問題をJavaで解いてみました。
13x-7y=200を満たす整数(x,y)のうち|x|+|y|を最小にする値を求めよ
2組答えがあるようなので、ちょっと手抜きになってしまいました。(^_^;
● DiophantineEqu1.java
/* * DiophantineEqu1.java */ class DiophantineEqu1 { public static void main(String[] args){ for(int x=-200; x<=200; x++){ for(int y=-200; y<=200; y++){ int z = Math.abs(x)+Math.abs(y); if(13*x-7*y==200){ System.out.printf("(x,y)=(%4d,%4d); |x|+|y|=%4d\n",x,y,z); } } } } }
●実行結果
(x,y)=( -88,-192); |x|+|y|= 280 (x,y)=( -81,-179); |x|+|y|= 260 (x,y)=( -74,-166); |x|+|y|= 240 (x,y)=( -67,-153); |x|+|y|= 220 (x,y)=( -60,-140); |x|+|y|= 200 (x,y)=( -53,-127); |x|+|y|= 180 (x,y)=( -46,-114); |x|+|y|= 160 (x,y)=( -39,-101); |x|+|y|= 140 (x,y)=( -32, -88); |x|+|y|= 120 (x,y)=( -25, -75); |x|+|y|= 100 (x,y)=( -18, -62); |x|+|y|= 80 (x,y)=( -11, -49); |x|+|y|= 60 (x,y)=( -4, -36); |x|+|y|= 40 (x,y)=( 3, -23); |x|+|y|= 26 (x,y)=( 10, -10); |x|+|y|= 20 (x,y)=( 17, 3); |x|+|y|= 20 (x,y)=( 24, 16); |x|+|y|= 40 (x,y)=( 31, 29); |x|+|y|= 60 (x,y)=( 38, 42); |x|+|y|= 80 (x,y)=( 45, 55); |x|+|y|= 100 (x,y)=( 52, 68); |x|+|y|= 120 (x,y)=( 59, 81); |x|+|y|= 140 (x,y)=( 66, 94); |x|+|y|= 160 (x,y)=( 73, 107); |x|+|y|= 180 (x,y)=( 80, 120); |x|+|y|= 200 (x,y)=( 87, 133); |x|+|y|= 220 (x,y)=( 94, 146); |x|+|y|= 240 (x,y)=( 101, 159); |x|+|y|= 260 (x,y)=( 108, 172); |x|+|y|= 280 (x,y)=( 115, 185); |x|+|y|= 300 (x,y)=( 122, 198); |x|+|y|= 320
※参考URL
●ディオファントス方程式
●ディオファントス方程式の質問を十進BASICで解いてみた。
●質問の一次不定方程式の一組の整数解をPythonで求めてみた。