最終更新: 2011-02-13T06:07+0900
3問あるうちの 2問目を抜粋する。
問2. 7×7の二次元配列aがあるとする。たとえば、以下のようなものである。
int a[7,7] ={ {1,1,1,1,1,1,1}, {1,0,0,0,0,0,1}, {1,0,1,1,1,0,1}, {1,0,0,0,1,1,1}, {1,0,0,1,0,0,1}, {1,0,0,0,1,0,1}, {1,1,1,1,1,1,1} };いま、aを迷路と見立てる。a[x,y]が0の箇所は歩けて、1の箇所は歩けない。迷路の外周は1であることが保証されているとする。
a[x,y]をスタート地点として、この迷路を歩いていくときの、歩ける箇所の数を求める関数W(a,x,y)を書け。(上の例では、W(a,1,1)=15)
ただし、再帰を使ったプログラム、再帰を使わないプログラムを用意すること。また、配列aの内容は破壊しても構わない。
トイレに入ってるときに前後の脈絡もなく答えが天から降ってきたので再帰版のRubyスクリプトを載っけてみる。再帰版は 1行で書けるらしいのだけど……。
# # 再帰版 # def w(a, x, y) if(x<0 || y<0 || a.length<=x || a[x].length<=y || a[x][y]==1) return 0; else a[x][y] = 1; return 1 + w(a, x-1, y) + w(a, x, y-1) + w(a, x+1, y) + w(a, x, y+1); end end a = [ [1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 0, 1], [1, 0, 0, 0, 1, 1, 1], [1, 0, 0, 1, 0, 0, 1], [1, 0, 0, 0, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1] ]; puts w(a, 1, 1); #=> 15
他の問題は解らない(というか考えてない(ってのは言い訳か))。問3なんて問題が理解できません。
芸がなくて恥ずかしいけど、スタックをキュー仮想スタックにしただけの非再帰版もアップ。
# # 非再帰版 # def w(a, x, y) ret = 0; q = x, y; while(! q.empty?) x, y = q.pop; if(x<0 || y<0 || a.length<=x || a[x].length<=y || a[x][y]==1) next; else ret += 1; a[x][y] = 1; q.push([x-1, y], [x, y-1], [x+1, y], [x, y+1]); end end return ret; end a = [ [1, 1, 1, 1, 1, 1, 1], [1, 0, 0, 0, 0, 0, 1], [1, 0, 1, 1, 1, 0, 1], [1, 0, 0, 0, 1, 1, 1], [1, 0, 0, 1, 0, 0, 1], [1, 0, 0, 0, 1, 0, 1], [1, 1, 1, 1, 1, 1, 1] ]; puts w(a, 1, 1); #=> 15
最終更新: 2011-02-13T06:07+0900
引用文の表現力が上がってるのだけど、もうひとつ、引用の中で整形済みテキスト(pre)を使いたい。
すぐ上のセクション(↑)で、改行を維持するために引用の中のコード部分だけを<pre>で囲ってるのだけど、そのソースはちょっと汚い。(上から二行目と下から二行目で)直接HTMLを埋め込んでるから後々 tDiaryをXHTML化したりするのが難しくなる。HTML化はWikiパーサに全て任せたい。tdiary/hikidoc.rbを拡張して引用文中の<pre>が可能にならないものか。
""7×7の二次元配列aがあるとする。たとえば、以下のようなものである。 "" int a[7,7] ={ "" {1,1,1,1,1,1,1}, "" {1,0,0,0,0,0,1}, "" {1,0,1,1,1,0,1}, "" {1,0,0,0,1,1,1}, "" {1,0,0,1,0,0,1}, "" {1,0,0,0,1,0,1}, "" {1,1,1,1,1,1,1} "" }; ""いま、aを迷路と見立てる。a[x,y]が0の箇所は歩けて、1の箇所は歩けな
普通でない精神と特異な能力を持った人間と人外の出てくるお話。個性的すぎる周囲の人間の中で、主人公サヤの見せる優しさがこの本唯一の普通っぽい部分。どうしてこの部分を突いてサヤを萌えキャラ化しないのかと。
次も一応チェックするけど先を読ませる力がちょっと弱い。
二人目の萌えっ娘さんを求めて……。(一人目はココ(BLOOD ALONE)に居ます)
既に読んでるんだけどね。[文庫] リチャード レイモン【殺戮の「野獣館」 (扶桑社ミステリー)】 扶桑社の訳者はあの大森望だったけどこれは違う。誰でもいいからリチャードレイモンの野獣館シリーズの 3つ目を出してくれないものか。
http://www.fantasticfiction.co.uk/authors/Richard_Laymon.htm
1500円以上にするために 少女には向かない職業 と合わせて買ったのが、こっちだけ先に来た。Amazonがなければ読めなかったであろう本。著者は、ファウストを読んでる人間としてチェックしておくべき人。
新しい Wikiスタイル(HikiDoc)を使いたいがために。
引用の中に
見出しとか
孫引用とか
- リストを挿入してみたりできる
でも多分 http://vvvvvv.sakura.ne.jp/ds14050/diary/ で日記にアクセスすると上の引用部分が下のように見えてるはず。(実際にはキャッシュが働くので新旧tDiaryのどっちが最後にキャッシュを作ったかによる)
引用の中に
!見出しとか
""孫引用とか
*リストを挿入してみたりできる
http://vvvvvv.sakura.ne.jp/ds14050/diary/ に加えた変更を http://vvvvvv.sakura.ne.jp/ds14050/diary-test/ に写し終えたら diary-test/ を diary/ にリネーム。
第一部の締めになるはずの巻だったのだけど
前巻のラストがあまりにアレだったので、担当さんが「ここは一発みんなが幸せになれるラブな短編集でも…」ともみ手しながら提案してきた
ので
メガネとか軍服とか天下一武闘会とか執事
になったらしい。
だもんでシリアスな話や本筋の進展は無し。(人は死ぬけど…)。息抜きというか次への溜めというかそんな巻。本編も良かったけどあとがきと(カバー折り返しの)著者紹介文が相変わらずの調子で、こんなに続くと次は期待しちゃうよ。
マイPCは Shuttleの SN25Pです。(→20050830#p01)
従来 SB83G(WindowsMCE readyモデル)専用だったソフトウェアがサポートするモデルを増やしてリリースされてる。オーバークロック、システムモニタ、ファンコントロール機能などがある。但し、NVIDIA製チップセットを載っけたモデル(含:SN25P)はベータ扱いで正式対応ではない。
ここに書かれてたことが現実になってるなあ。
♪ [単行本(ソフトカバー)] 桜庭 一樹【少女には向かない職業 (ミステリ・フロンティア)】 東京創元社が見つからない。アマゾンさんの出番だ。
同カテゴリの日記をリスト表示するページでメインのHTMLを出力してるのは category.rbの中の category_list_sections()。こいつとか Category::Info#make_anchor()はパラメータとして複数のカテゴリを与えられることを想定している。けれどこの 2つのメソッドは「@mode == 'categoryview'」なページの中でしか使えない。
どういうことか。複数のカテゴリ名がパラメータとして与えられればそれらを全てリスト表示できるのに、そういうパラメータを持ったリンクを作る手段がなかった。(Category::Info#make_anchor()にはその可能性があったけど使える場所がカテゴリページ内に限られるので外からの入り口にはなれない)
カテゴリページへのリンクを作るのにはもう一つ方法があって、それが同じ category.rb内にある category_anchor()。これは Category::Info#make_anchor()とは対照的にカテゴリページの外でしか使えない*。category_anchor()を複数カテゴリ対応にすれば晴れて入り口のできあがり。
* 「カテゴリページ」を表す「class TDiaryCategoryView < TDiaryBase」には @dateが存在しないから、Pluginオブジェクトの @dateも nullになって、category_anchor()が @dateを参照するところでエラーになる 。
20050825#p04の続き。
入れ子になったスクロールエリアをキーボードでスクロールすることはできないけどホイールでスクロールすることはできた。内側のスクロールエリア内のハイパーリンクにフォーカスがある間はホイールでスクロールできる。(IEならポインタを上に持って行くだけでいいのに)
Firefoxでも Google AdSenseの上にポインタをもっていってホイールを回すとスクロールするんだよね。これは <IFRAME>を使ってるから OKなの? <div style="overflow:scroll">がアウト?
約300ページ中115ページまで読んだけど読み続けるのが辛い。置いてけぼり。
どういう世界なのか掴めないまま話が進んで行くのでストレスがたまる。主人公の妹にしてから実在するのか幻覚なのか曖昧。主人公の知らない情報を持ってるので幻覚ではないだろうが、超越しすぎで現実感がない。
これまでのところハンディキャップもちょっと違う世界も必要ない。もっとチェリーを。