研究室のWikiでIKeJIから教えてもらったこの問題(参照: 人生を書き換える者すらいた。: 人材獲得作戦4試験問題ほか)にトライしてみました。
手元にあった環境とC言語でトライしたところ、19:38開始、21:18終了、所要時間1時間40分でした。回答はこんな感じです。
$ ./a.out < meiro.dat found the goal depth=60 ************************** *S* * $$$ * *$* *$$*$ ************* * *$* $$* $ ************ * *$$$$* $$$$$$$ * **************$*********** * $$$$$$$$$$$$$ * **$*********************** * $$$ * $$$$$$$$$$$$$G * * *$$$$$$*********** * * * * ******* * * * * * **************************
出力結果は上記サイトの基準でいうLv4達成(※)です。
苦戦したところはダイクストラ法の実装です。ダイクストラ法なんかは基本中の基本のアルゴリズムですが、結構忘れていて手間取りました。
一応 ソースコードも載せておきます。頭に修正BSDライセンスの条文を追加した以外、全てそのままです。
リファクタリングも何もしていませんので、変なコメント、グローバル変数乱発、意味不明な変数名、デバッグ用コード、ゴールできないときハングするバグ(※2)も恥ずかしながらそのままです。
迷路一歩進む度に、迷路の全域をチェックするなどモサい実装ですが、これが現状発揮できる自身の実力の一つであることには違いないです。よって今後も精進あるのみです。
(※)ダイクストラ法は常に最適解、この問題の場合でいえばゴールまでの最短距離を得られるためです。証明は習った気がしますが忘れました…。
(※2)ゴールへの経路がない場合「not found the goal」と出力しますが、returnし忘れているため、その後のパスのバックトレース部分に突入してしまい、無限ループに陥ってハングします。
日記を書いているときに気がつきました。ひどすぎですね、これ。
土曜日のホルモン行ったあたりからどうにも具合が悪く、今日は一日寝ていました。が、全く具合が良くならず。腹が痛くてトイレと部屋を何度か往復しました。
夜になって、どうもこれは熱があるんじゃなかろうかと思って体温を測ると、なんと39.3℃。見なきゃ良かった、と思いつつ就寝。
真夜中の1時半に腹が痛くて目が覚めてトイレへ。下痢なのは今日一日ずっと同じなのだけど、今回はさらにすごい吐き気がする。ヤバい。
最初は下痢とゲロが同時に来たらどうすんの??とかくだらないことを考えてる余裕もあったのですが。めまいで目の前がグラグラ揺れるし、換気扇のゴォーって音が聞こえないほど激しい耳鳴りがするし、もう吐き気がマキシマム。
掃除のおばちゃんごめんなさい、僕にはもうバッドエンドしかありません…と諦めたものの、バッドエンドになるかならないかのところで突然、服がびしょびしょになるくらい大量の汗が出てきて、めまい、耳鳴り、吐き気がゆっくりフェードアウトしていきました。
一体なんだったんだろう?と思って、部屋に戻って熱を測ったら37.9℃まで下がっていました。これが熱が下がるときは汗をかくってやつ?
とはいえ、こんな気分悪い思いはもうたくさんです…。寝てるときに勝手に下がってください。
会社はお休みしました。んで、近所の病院に行ったら、いつもの先生に「あ、腸炎です。」と診断されました。
薬が3種類処方されたのですが、そのうちの1つ「アドソルビン」君は激マズ。例えるなら間違って口に入っちゃった土か砂。それもそのはず、主成分はケイ酸アルミニウム(Al2SiO5)つまり粘土。
おいおい、粘土喰わせんなよ…って思うなかれ、腸内の有害物質を吸着してくれる働きがあります。
乳酸菌製剤の「エンテノロン-R」はやさしい甘さでおいしい。これは病気じゃないときにもぜひ食べたい味。
最後は抗生物質で「ホスミシン錠500」(ホスホマイシン)でした。錠剤のくせにカプセル並にでかくて、めちゃくちゃ飲みづらいです。こんなでかくしなくてもいいのに…何か方法はなかったのかねえ?
< | 2010 | > | ||||
<< | < | 01 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | - | - | - | - | 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 | - | - | - | - | - | - |
合計:
本日: