フェルマーの最終定理の「反例」(C言語編)

(プログラミングに興味のない方は表計算ソフト編へ)

先日紹介した『数学ガール フェルマーの最終定理』は、付録でフェルマーの最終定理の反例(?)を紹介しています。しかしそれは、計算すればすぐに反例ではないことがわかってしまうものでした。ここではもう少し凝って、計算すると「反例」だということになるものを紹介しましょう。

「a^3 + b^3 = c^3」となるような、正の整数a,b,cを探します。素朴に、次のようなプログラムを書けばいいでしょう(gotoを使った方がプログラムが簡単になる簡単な例です)。

#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;
}

実行すると、反例が見つかります(規格で規定していない動作を利用しているので、うまくいかない処理系もあるかもしれません)。C++やJava、C#でも同様のプログラムで見つけられるでしょう。このプログラムは実行に少し時間がかかるので、codepadではタイムアウトしてしまうのですが、結果を検証するコードなら実行できます。

フェルマーの最終定理の「反例」(C言語編)

種明かしは後日。Perl, awk, JavaScript, PHP等で試したい向きはこちら

フェルマーの最終定理 (新潮文庫)フェルマーの最終定理自体に興味のある人には、最近文庫になったサイモン・シン『フェルマーの最終定理』もお勧めです。

トラックバック(0)

このブログ記事を参照しているブログ一覧: フェルマーの最終定理の「反例」(C言語編)

このブログ記事に対するトラックバックURL: http://www.unfindable.net/~yabuki/mt/mt-tb.cgi/1017

コメント(2)

サイモン・シンの作品は面白いですね。
ビッグバン宇宙論も早く文庫化してほしいです。

しおざわさん

サイモン・シンはうまいですね。
でも、フェルマーの最終定理に関する本は、いくら数式を使って説明されても、まったく核心に近づいた気分にはなれないんです。
それに比べればビッグバン理論は、理解するためのトレーニングがかなり少なくていいです。

コメントする


画像の中に見える文字を入力してください。

portrait

 

Translation

著書

schedule

 

2008年10月

      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

関連商品(Amazon)

関連サイト(Google)

アーカイブ

twitter

  •