2008-11-01から1ヶ月間の記事一覧

続・ユークリッドの互除法を使って2つの整数の最大公約数を求める(再帰編)

今度は、再帰を使って書いてみました。 まずは、減算を用いたユークリッド互除法です。 public class Euclid { private static int count; public static void main(String[] args){ try{ int m = Integer.parseInt(args[0]); int n = Integer.parseInt(args…

ユークリッドの互除法を使って2つの整数の最大公約数を求める

2つの整数m、n(m > n)をユークリッドの互除法を使って、mとnの最大公約数を求めます。 減算を使った場合のアルゴリズムは次のようになります。 1.mとnが等しくないあいだは次を繰り返す 2.m > nの場合 m = m - n それ以外 n = n - m 3.m(もしくはn…

入力したプログラムコードを色付けするスーパーpre記法

はてなのブログでソースコードを色分けして書く方法を検索してみました。とっても便利な機能ですね。今までは <pre> program code </pre> で書いていたのですが、色付けしたほうがやっぱり見やすいです。 詳しくは、以下を参考にしてください。入力したプログラムコード…

続・フィボナッチ数列を生成するプログラム

前回のエントリーでは、再帰手続きを使って書いたのですが、これだとnが増えるごとに計算時間はどんどん遅くなってくるので実用に耐えないアルゴリズムであることは明白です。今度は配列を使って、一度計算したフィボナッチ数を記憶させてやりました。 publi…

フィボナッチ数列を生成するプログラム

フィボナッチ数は一般的に下記のとおりに定義されます。 f_0 = 0、f_1 = 1 f_n+2 = f_n + f_n+1 (n >= 0) これを冗長性を無視して、再帰手続きを使ってJavaで書いてみました。 public class Fibonacci { /** * フィボナッチ数列を生成するプログラム * @para…

続・ニュートン法による平方根の計算

前回エントリーのコードでforループを使ったところを再帰で書いてみました。 あと、Mathクラスを使わないように変更してみました。import java.io.*;/** * ニュートン法による平方根の計算 * */ public class Newton { private static final double EPS = 1.…

ニュートン法による平方根の計算

ニュートン法は、関数 f(x) とその導関数 f'(x) が与えられたとき、方程式f(x)=0 の解を求めるといったもの。 x_n+1 = x_n - f(x)/f'(x) に f(x) = x^2 - a を代入して簡約すると x_n+1 = (x_n + a / x_n) / 2 となり、これを指定した誤差以内になるまで反復…