« USBマウス対応サンプルのソースコードを読んでみる | トップページ | GW明けから早速 »

2008年5月 2日 (金曜日)

頭の体操

仕事がらみでちょっとしたアルゴリズム系のプログラミング。いわゆるテストケースのパターン洗い出しなんですが意外と面白かった。どんな問題かと言うと、

こんな感じの状態遷移パターン洗い出し問題です(UMLの多重度の表現を知っていることを前提とします)。

  • 初期状態を表す[初期ノード]がある
  • その他のノードは[通常ノード]と呼ばれる
  • 上記2つを総称して[ノード]と呼ぶ
  • [ノード]間は[ルート]と呼ばれる概念で結ばれている
  • [ノード]間の[ルート]の多重度は0...nである
  • [初期ノード]から[ルート]を辿って[ノード]を渡り歩いて行くと必ず最後に[初期ノード]に戻る(当然[初期ノード]→[初期ノード]という[ルート]もある)

上記の条件において、実際のノードの条件を与えると初期ノードから別のノードを経由して初期ノードに戻ってくる経路すべてを表示するプログラムを作成せよ

という問題。今回対象としたのはノードが全部で8つでルートが28あるものだったんですが、結果71パターンという結果に。実は、このプログラム作る前に目視でやってみたらなんと58パターンだったんですよ・・・13パターンも抜けがあったなんて・・・。パターン一覧は会社に置いてきたんで休み明けに付き合わせてみる予定。

たまにこーいうプログラミングも楽しいもんです。でも、簡単な公式とかあったらやだな・・・。

|

« USBマウス対応サンプルのソースコードを読んでみる | トップページ | GW明けから早速 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2790/41070882

この記事へのトラックバック一覧です: 頭の体操:

« USBマウス対応サンプルのソースコードを読んでみる | トップページ | GW明けから早速 »