2011-01-01から1年間の記事一覧

Project Euler #9 に関して

昨日の 日記 (Dec 30, 2011) で, 原始ピタゴラス数 a, b, c を, m と n を使って書き表わすことを学びました. そこで, ふたたび Project Euler の Problem 9 (Jan 25, 2002) を復習してみたいところなのですが, ちょっと別の疑問が湧いてきまして, 少々足踏…

複数の関数を同列に扱いたい

C

これまで Project Euler の問題に取り組むとき, できれば複数の解法を試してみようと心がけてきました. そして, それぞれの解法の処理時間を比較してみるということをやってきました. その際, 比較をおこなうために書いたコードがいつも野暮ったくて, これは…

原始ピタゴラス数について少し勉強してみるなど

きょうは趣向を変えまして, 原始ピタゴラス数について少しだけ学んだことを書いてみたいと思います. 前回の 日記 (Dec 28, 2011) に id:wd0 さんから原始ピタゴラス数に言及したコメントをいただいたのが今回の日記を書くきっかけになりました. もっとも, 特…

Project Euler #8, #9, #10

本日は少し勢いをつけて, さらに Problem 8 (Jan 11, 2002), Problem 9 (Jan 25, 2002), Problem 10 (Feb 8, 2002) の 3 問について書いてみたいと思います. まだ年末年始休暇に突入したわけではないんですが, 急を要する仕事も特にないような気がする (とい…

10001 番目の素数

けさは Project Euler の Problem 7 (Dec 28, 2001) です.

平方の和 と 和の平方

だんだん, プログラミングやアルゴリズムの勉強ではなく, 高校数学の勉強のようになってきましたが, けさは Project Euler の Problem 6 - Project Euler (Dec 14, 2001) についてです.

3 個以上の数の最小公倍数

Project Euler の Problem 5 (Nov 30, 2001) をやってみました.

回文となる整数を求める

少し間があいてしまいました. Project Euler を再開してみます. 今回は Problem 4 (Nov 16, 2001) です.

素因数分解

Project Euler の Problem 3 (Nov 2, 2001) は, 素因数分解の問題でした.

偶数のフィボナッチ数

けさは Project Euler の Problem 2 (Oct 19, 2001) をやってみました. ただし, 厳密には, けさになってはじめてやってみたというわけではありません. 数日前から考えてはいたのですが, 期待していたほど美しい解き方を思いつくことができず, 結局いまに至っ…

3 または 5 で割り切れる数の合計

少し前にその存在を知ったものの, いままで特に気にかけていなかったウェブサイトがあります. Project Euler です. おそらく id:fumokmm さんの 「1000以下の回文素数で最大のものを示せ」をGroovyでやってみた (Jul 3, 2011) という記事で見かけたのが, そ…

リストと二分探索ツリー

いきなり大上段に構えたような題名をつけてしまいましたが、大それたことを書こうというわけではありません。 これまでアルゴリズムの勉強において、配列のことしか考えてきませんでしたが、今回はリストやツリーについて考えてみようという、ただそれだけの…

二通りの挿入ソート

これまでに、交換ソート (バブルソート)、選択ソート、挿入ソートを、大雑把に眺めてきました。 いずれも、計算量オーダーが O(N2) であるとされているアルゴリズムです。 これらの中では、個人的には挿入ソートがちょっと気に入りました。 あまり難解もしく…

単純挿入ソート

昨日の日記 単純選択ソート (Nov 23, 2011) で、単純選択ソートをわたしなりに安定ソート化してみようと試みた際に、これはもしかしたら単純挿入ソートに変質してしまったのではなかろうか、という疑問を抱きました。 で、そもそも、単純挿入ソートって、ど…

単純選択ソート

昨日の日記 バブルソートのお勉強 (Nov 22, 2011) におきまして、「単純選択ソート (straight selection sort)」 と呼ばれるものについて言及いたしました。 が、その後、そこに掲載したサンプルコードにはもう少し見直しの余地がありそうだと思いまして、本…

バブルソートのお勉強

アルゴリズムの勉強というと、まずはソートに関するアルゴリズムから始めるのがお約束ということになりましょうか。 また、ソートに関するアルゴリズムの勉強というと、だいたいバブルソートから始めることになりましょうか。ということで、わたしもバブルソ…

これは何ソートって呼ぶのかな

先月から、アルゴリズムの勉強と C 言語の勉強を始めたはずなのですが、気づけば今月はほとんど何もしていないことに気づきました。 で、それらの勉強をそろそろ再開したいのですが、その前に、今回は、ちょっと思い出話を書き残してみたいと思います。

順列を列挙する

最近、ちょっとだけ独学を始めた C 言語を使って、順列 (permutation) を列挙するコードを書いてみようと思い立ちました。 少し前に読んだ 『Java データ構造とアルゴリズム基礎講座』(長尾和彦著 技術評論社 2009 ISBN978-4-7741-3697-4) という本で小さな…

可変長の配列を返す関数

C

今週はだらだら過ごしてしまい、C 言語の勉強に手をつけていませんでした。 そのおかげで、学び始めたばかりの C 言語のことをほとんど忘れてしまいました。 やはり歳を取ると、もの覚えが悪くなるので、何度も何度も反復練習しなければなりませんね。 また…

配列の長さについて

C 言語で配列を扱う場合、配列の長さ (配列の要素の数) はどのように取得するのでしょう。

プログラムの書き方についての些細なメモです

C

けさも C 言語の独学についての日記です。 プログラミング言語 C 第 2 版 ANSI 規格準拠 (B. W. カーニハン / D. M. リッチー著 石田晴久訳 共立出版 1989 ISBN978-4-320-02692-6) の進捗ですが、とりあえず第 5 章 「ポインタと配列」 の次は、第 6 章 「構…

ポインターに入門

C

通称 K&R を読みながらの C 言語の独学ですが、第 5 章 「ポインタと配列」 は若干ページ数が多く、まだ読み終えられていません。 読んでいてよくわからない部分も少なくありません。 が、それでも、いまのところ退屈せずに読み続けることができています。

わからないこと 2 点 ならびに ちょっと脳裏の片隅に残った 2 点

C

先日から読んでいる プログラミング言語 C 第 2 版 ANSI 規格準拠 (B. W. カーニハン / D. M. リッチー著 石田晴久訳 共立出版 1989 ISBN978-4-320-02692-6) は、「データ型・演算子・式」、「制御の流れ」、「関数とプログラム構造」 の各章を読み、きょう…

いわゆる 「やさしい入門」 から

C

ひとつ前の日記 Java をちょっとかじっただけの文系出身セールスエンジニアが C に興味を持つなど (Oct 22, 2011) でも触れましたが、C 言語の独学を始めました。 使用する教本は、通称 K&R とも呼ばれる プログラミング言語 C 第 2 版 ANSI 規格準拠 (B. W.…

Java をちょっとかじっただけの文系出身セールスエンジニアが C に興味を持つなど

C

少々繰り返しになりますが、id:nowokay/@kis さんの アルゴリズムの勉強のしかた - きしだのはてな (Sep 22, 2011) という記事は、個人的にツボにはまるものがありまして、プログラミングの基本ともいうべきアルゴリズムというものをまじめに勉強してみたく…

リニアサーチに番兵を付けると

最近、id:nowokay/@kis さんの アルゴリズムの勉強のしかた - きしだのはてな (Sep 22, 2011) という記事に触発されて、プログラミングの基本のようなところに興味が湧いてきました。 具体的には、アルゴリズムというものを、かつてまともに勉強したことがな…

Properties#stringPropertyNames() のありがたみ

前回の 日記 (Sep 24, 2011) で、Properties クラスの propertyNames() メソッドは ClassCastException をスローすることがあるので悩ましい、というようなことを書きました。 かと言って、Java SE 6 を利用することが許されていない開発現場では stringProp…

Properties は拡張 for 文の夢を見るか

意味ありげなタイトルを掲げてみましたが、別に大したことを書くわけではありません。 Java SE 6 で Properties クラスに追加された stringPropertyNames() メソッドって、便利ですよね、っていう、ただの感想文です。実は、このメソッドのことを知ったのは…

複数のインターフェースを実装すると

複数のインターフェースを実装するクラスを書くという機会は、あまりありません。 複数のインターフェースを実装するということは、たぶん複数の責務をそのクラスに負わせることになってクラス設計が複雑化しかねないので、そういうクラスを書かずに済むなら…

JNDI 経由でのパスワード変更 続き

これは、前回の 記事 の続きです。 前回は、パスワード変更のための LDAP 拡張オペレーションを意図するコードの中で、リクエスト内容をあらわすバイト列の生成を後回しにしていました。 今回は、それについて書きます。