ルギア君の戯言

雑多な記事。

5年2月28日 (火)

みんな「みーっつ! みんな笑顔であかるい世界!」
ドンちゃん「よし、今日も仕事始め!」


・・・


ルギア君「・・・キリルンは居るか?」
リー「えーっと、野草摘みに出かけていますね。わざわざ私達の部屋に来るとはいったいどんな御用でしょうか。」
ルギア君「いや、別に急ぎではないが。どうしても相談したいことがあってな。」
リー「そうですか。では、戻ってきたらルギア君の部屋に行かせるように言っておきます。」
ルギア君「多分言わなくても来る気がするが。」
リー「(笑)」


・・・

キリルンキリルンです。はいります。」
ルギア君「あ、入っていいよ。」
キリルン「はい。」
ルギア君「後から考えてみれば、そこまでして来てもらう必要は無かったんだが、どうしても自分で解決できなくてな。」
キリルン「そうですか。で、何でしょう?」
ルギア君「では、今から言う問題に答えてくれ。」
キリルン「はい。」
ルギア君「今から書くプログラムの論理を簡略化しなさい。」

if(!(p1 == a_last && p2 == b_last)) {
  /* ... */
}

キリルン「ド・モルガンの法則を使えば良いですね。」

if(p1 != a_last || p2 != b_last) {
  /* ... */
}

キリルン「でしょうか。」
ルギア君「そうだね。でも、ルギア君語*1の『ポインタP1が配列Aの最後でない、または、ポインタP2が配列Bの最後でない』と『ポインタP1が配列Aの最後を指していて、ポインタP2が配列Bの最後を指している・・・わけではない』って言うのが同じだとは思えないんだけど、どう?」
キリルン「いや、それは同じでしょ。やっぱり。」
ルギア君「そうか。詳しく説明できる?」
キリルン「じゃあ、ベン図さんに登場してもらいましょう。」
f:id:lugia:20090903205412p:image
ルギア君「いつのまに Inkscape の使い方を知ったんだ?」
キリルン「それは秘密です。さて、」

!(p1 == a_last && p2 == b_last)

キリルン「が示す部分は、どこでしょう?」
ルギア君「青と赤と水色の部分」
キリルン「ですね。では、」

p1 != a_last || p2 != b_last

キリルン「が示す部分は、どこでしょう?」
ルギア君「p1 != a_last は赤と水色・・・ p2 != b_last は青と水色・・・ってことは青と赤と水色・・・か。」
キリルン「同じですね。ルギア君語でもやってみますか?」
ルギア君「うーん、わからないけど結果的には同じになるんだよな。」
キリルン「はい。」
ルギア君「日本語は難しいな。」
キリルン「日本語?」

*1:訳注: ルギア君語と日本語は同じ文法を持っているので日本語と考えてもらって構わない。