Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ(目次)。 今回は最大公約数(GCD, Greatest Common Divsor)を求めるアルゴリズムを見ていきます。 最大公約数はアルゴリズムと言えばのユークリッド互除法で求められます。こ…
Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ(目次)。 Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ。 今回は組合せの個数を計算するアルゴリズム。 その1では、あまり実用的ではないです…
Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ(目次)。 今回は再帰関数の例としてよく出てくる自然数の階乗と、それに関連する順列の個数を計算するアルゴリズムを見ていきます。 再帰関数の例としてよく出てくると言っても…
Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ(目次)。 今回は前回に引き続き、全順列を生成するアルゴリズムを見ていきます。 全開は『Java によるアルゴリズム事典』に載っている4つのアルゴリズムのうち1つ目のものを見…
Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ(目次)。 今回はある定まった次数(並べるモノの個数。 コード中では degree とする)の全順列を生成するアルゴリズムを見ていきます。 『Java によるアルゴリズム事典』には4…
ちょっと高校の頃にはあやふやだったなぁという回顧のエントリ。 指数法則や指数関数を考えるときに、底にどのような制限がつくかを整理してみます。 この記事中では、特に断らない限り自然数に0を含めます。1以上の自然数の指数 を実数、 を1以上の自然数と…
Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ(目次)。 今回は順列に辞書順序で番号を付けたとき、与えられた順列とその番号との相互の変換を考えます。 ただし番号は Int などの通常の整数値ではなく、階乗進法で表された…
Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ(目次)。 今回は、階乗進法 (factorial representation) という数の表し方を見ていきます。階乗進法10進法が10を基数にしている、つまり10の累乗の級数で表されるのに対して、…
Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ(目次)。 以前に置換のアルゴリズムを扱ったときに、『Java によるアルゴリズム事典』に「置換の生成」がなくておかしいなぁと思ってたら、「順列」「順列の生成」の項目にある…
Scala で『Java によるアルゴリズム事典』のコードを書き換えてみようシリーズ(目次)。 『Java によるアルゴリズム事典』で、関数型プログラミングで書きやすそうなアルゴリズムがあったので Scala で書いてみた。 今回は、データに誤りが無いかチェックす…