いもあらい。

プログラミングや哲学などについてのメモ。

スライドパズル。

2008-04-26 18:20:00 |  Prog...
スライドパズルのソルバーを作ってみた。

久々にプログラム関係のエントリ。

Nintendo DSで、最近レイトン教授とかをやってたんですよ。
で、大体の謎はスラスラと、あるいはがんばれば解けたんですが、2作目の本編にある、「ゴミをゴミ箱の中に移す問題」だけがどうにも出来なくて。
箱入り娘みたいなスライドパズル(正式にはスライディングブロックパズル)なのですが、こればっかりは論理的なアプローチでは解けないですからねぇ。

で、まぁネットで検索してあげれば答えも見つかるんでしょうが、なんかそれもくやしいので、ならソルバーを自分で作って解いてやれ、とw

アルゴリズムは単純に幅優先探索をしていくというもので、あえて工夫を挙げるなら、状態を保存するのにハッシュマップを使ったくらい。
こういう列挙に関するアルゴリズムとかも研究されているはずなのですが、詳しく知らないので^^;

なんだかんだでプログラミングするのに1週間くらいかかって、ついこないだ出来上がったばかりなのですが、解けはするものの、やはりなかなか時間がかかりますねぇ。
もっといいアルゴリズムがあればいいんですけどねぇ。

ちなみに、一番最後の謎(「悪魔の箱」)も、同様のスライドパズルだったので、作ったプログラムがそのまま使えました。
これはよかったかなと^^
(ちなみに、ゴミ箱の問題を解くほうが悪魔の箱の問題を解くよりも時間かかっていると思います。悪魔の箱は3時間くらいで解けたので。)

※ソースコードは載せません。
全部載せると、1000行くらいになっちゃうので^^;
グラフィカルなインターフェースで作れれば公開も出来るんでしょうけど、技術が足りない。。。


IBMの一次とか。

2008-04-09 15:24:00 |  Etc...
IBMの一次選考、受けてきた。

なんだかんだで書類と適性検査は大丈夫だったっぽい。
・・・いや、これが「一次選考」と名を打っている以上、みんな通しておいて、あとの面接のときとかに書類&適性検査の結果は参考にされるとかなのかもしれないけれど。

で、一次選考。
何をやったかというと、グループワークで、「内容は心の中に」という注意があったので具体的な課題が何だったのかは書けないんだけれど、これがやっぱり難しかった。。。
ぶっちゃけた話、課題を解決できなかったし。

なんというか、日経のグループディスカッションのときといい(日経の技術職も受けてたりしたので。落ちましたが。)、今回のグループワークのときといい、進め方がよくなかったのが大きい感じ。
問題を大雑把に切り分けて、時間配分とか(今回のグループワークであれば人員の配分とか)をもっとよく考えて進めないといけないんだなぁ、って。

・・・やっぱり少し出しゃばってでも、場をある程度仕切った方がいいのかな?
なんというか、「場を仕切る」ということができる人が少ない。
日経のときは、慣れていないこともあったので、司会をやってくれるという人の手腕に任せてしまったのだけれど、正直・・・
日経に落ちてしまったのはひとえに自分がその後の面接で失敗をしたからだろうけれど、グループディスカッションのときに自分が仕切っていればもうちょいまともな討論が出来たかな、と思うわけで。(自信過剰?)
みんな、議論をまとめたりとかってサークルでやったりしないのかなぁ?

あー、それで思い出した。
多いのが、「じゃあ、一人一人意見を言っていってみよう」という形。
これってどうなんだろう?
無駄が多い(みんな同じようなことを挙げるので)のと、あと議論が段階的にならないで並列的になっていって分かりにくくなるんじゃないかなぁ、と思った。
ブレスト(誰でもいいから意見を言う)
  ↓
問題の分割
  ↓
各問題を順番に解決
という形にしたほうがいいんじゃないかなぁ。
無駄がなくなるし、時間配分とかもしやすいし、議論が並列的にもならないだろうから。

ちなみに、IBMの一次選考についていうならば、最後に今回のワークを反省する話し合いを行って発表をする、というのがあったので、無理やり発表権を得て(といっても、みんなするりと譲ってくれたけれど)プレゼンの形で簡潔にまとめて終了。
一応、全体の意見をまとめる形に出来たとは思うのだけれど、この「無理やりさ」が吉と出るか凶と出るか・・・

#そういえば(別の会社用のだけれど)プレゼンの構成を考えてパワーポイント作らないと。
#志望動機とかも会社の特色とを考えてもっと詰めないといけないし。。。