タグ

ブックマーク / bloblo.jp (3)

  • Java 動的計画法でフィボナッチ数列を高速に求めてみた | ぶろぶろ!

    こんばんは、すずしんです。 以前、「Java フィボナッチ数列を求めるプログラムを書いてみた」という記事をきっかけにして、フィボナッチ数列の要素を求めるプログラムを作成してみました。 そして、「Java フィボナッチ数列を求めるプログラムを高速化してみた」という記事では、HashMapを使うことで高速にフィボナッチ数列の計算を行えるようにしました。 この度、フィボナッチ数列の要素を求めるにあたって、「動的計画法」と呼ばれる方法でプログラムを新たに作成して動作チェックしてみました。 すると、実装がシンプルなのにも関わらず、非常に高速に要素の値を求めることができることが分かりました。 今回の記事では、その動的計画法で作成したプログラムについて紹介したいと思います。 フィボナッチ数列とは? フィボナッチ数列というのは、「前の2つの数を加えると次の数になる」数列のことを言います。 ただし、

    Java 動的計画法でフィボナッチ数列を高速に求めてみた | ぶろぶろ!
  • Java フィボナッチ数列を求めるプログラムを高速化してみた | ぶろぶろ!

    こんにちは、すずしんです。 前回の記事「Java フィボナッチ数列を求めるプログラムを書いてみた」では、フィボナッチ数列の要素を求めるプログラムを作成してみました。 しかし、要素の計算に時間があまりにもかかり過ぎてしまうという問題がありました。 そこで、私はちょっとアルゴリズムを工夫しまして…。 高速にフィボナッチ数列の要素を求められるようにしてみました。 今回の記事では、その方法について書いていきたいと思います。 フィボナッチ数列とは? フィボナッチ数列というのは、「前の2つの数を加えると次の数になる」数列のことを言います。 ただし、初項と第2項の値は1となっています。 例えば、第3項の値は初項と第2項の数の和になりますので2です。 第4項の値は第2項と第3項の数の和で3です。 これを繰り返していくと以下のような並びになります。 1, 1, 2, 3, 5, 8, 13, 2

    Java フィボナッチ数列を求めるプログラムを高速化してみた | ぶろぶろ!
  • Java for・while文で階乗を求めるプログラムを書いてみた | ぶろぶろ!

    こんにちは、すずしんです。 前回の記事「Java 再帰呼び出しで階乗を求めるプログラムを書いてみた」では、再帰呼び出しを使って階乗を求めるプログラムを作成しました。 こちらの記事では、再帰呼び出しではなく、for文とwhile文を使って階乗を求めるプログラムを書いてみます。 比較対象記事として読んで頂けるとありがたいです。 階乗とは? 階乗というのは、順列や組み合わせを求めるときにしばしば用いられる計算方法です。 一般的に「n!」と表されて、正の整数nから1ずつ小さい整数を1まで順に掛けた積のことを言います。 例えば「4!」であれば以下のようになります。 4! = 4 x 3 x 2 x 1 = 24 for文を使って階乗を求めるプログラム まずは、for文を使って階乗を求めてみます。 サンプルプログラムFactForは以下のような感じです。 1から10までの階乗を求めて、結果

    Java for・while文で階乗を求めるプログラムを書いてみた | ぶろぶろ!
  • 1