忍者ブログ
おそらく活動状況とか、他愛もないこととか書きます。 μ崎みのりの気ままで気まぐれなブログです。 作曲とか、ゲーム製作なんかしてます。
[580]  [579]  [578]  [577]  [576]  [575
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

今日のgoogleが論理演算になっていたのでふと物思いにふけってしましました。

普通、論理値といえば真(true)または偽(false)のみを取る値です。
プログラミングだとboolとかBooleanとかで定義されてるアレですね。

…で、この論理値には二項演算があります。ANDとかORとかのあれです。
ふたつの入力XとYに対して出力をどのように制御するかのパターンを考えると、
AND・OR・XOR・NAND・NORなどの代表的なものから、含意とかYに関係なくXを返すとか特殊なパターンなども全部合わせて16通り(2^2^2)になります。

……で。.NETにはnull許容型があるわけで。
bool型のnull許容はtrue・falseに加えてnullも取りうる三値論理になるわけですね。
bool?型は他のNullable<T>と違って&・ | などの二項演算が特別扱いされ、三値論理演算になっています。
こちらもANDやORなどは分かりやすい挙動ですが、じゃぁこの演算子が全部で何パターンあるかを数えてみると…。
3^3^3なので19683通りに増えます。
さすがにこれを列挙するのは至難の業ですね…。
累乗が2回出てくるので爆発的に組み合わせは増えていきますね。
もちろんオペランドを入れ替えただけだったり、NANDやNORのような全体を否定するだけだったりのパターンを考慮すると数は減りますが……。
その数え上げすら結構面倒なので省略します(笑)が、それでも1/4くらいにしかならないはず…。
PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
忍者ブログ [PR]