先日紹介した『数学ガール フェルマーの最終定理』では、フェルマーの最終定理の反例(?)が紹介されています。しかしその反例は、計算すれば反例でないことがすぐにわかってしまうものです。ここではもう少し凝って、計算すると「反例」だということになるものを紹介しましょう(もちろん括弧付きです)。
a=139、b=954、c=2115のとき、a^3+b^3=c^3になります。Codepadで確かめてみましょう。
自分で見つけたい場合には、素朴に、次のようなプログラムを書けばいいでしょう。
#include <stdio.h>
int main ()
{
int a, b, c;
for (c=1; ; c++) {
for (a=1; a<c; a++) {
for (b=a; b<c; b++) {
if (a*a*a+b*b*b==c*c*c) goto found;
}
}
}
found:
printf("Found!\n");
printf("a=%d, b=%d, c=%d\n", a, b, c);
return 0;
}
実行すると、反例が見つかります(規格で規定していない動作を利用しているので、うまくいかない処理系もあるかもしれません)。
Javaでも同じことが起こります。
public class Fermat {
public static void main(String[] args) {
int a, b, c;
search:
for (c = 1;; c++) {
for (a = 1; a < c; a++) {
for (b = a; b < c; b++) {
if (a * a * a + b * b * b == c * c * c) {
break search;
}
}
}
}
System.out.println("Found!");
System.out.printf("a=%d, b=%d, c=%d\n", a, b, c);
}
}
フェルマーの最終定理自体に興味のある人には、最近文庫になったサイモン・シン『フェルマーの最終定理』もお勧めです。
Related posts:
サイモン・シンの作品は面白いですね。
ビッグバン宇宙論も早く文庫化してほしいです。
しおざわさん
サイモン・シンはうまいですね。
でも、フェルマーの最終定理に関する本は、いくら数式を使って説明されても、まったく核心に近づいた気分にはなれないんです。
それに比べればビッグバン理論は、理解するためのトレーニングがかなり少なくていいです。