はじめMath! Javaでコンピュータ数学

第21回 論理代数の公式[後編]

この記事を読むのに必要な時間:およそ 1.5 分

前回は一通り論理代数の公式を学習し終わりました。今回はちょっと具体的に,文章の形の命題から論理式を作る練習をしましょう。今回の問題をしっかりこなした後は,皆さんが作成されたプログラムに目を移してみてください。複雑に絡み合ったif文やcase文は論理代数をつかって整理できないでしょうか。今回の学習でそういった視点を持てるだけでも意味があるというものです。

問題:命題を論理式で表現し,論理代数の公式を用いて簡略化しましょう。

(1)命題「条件A,B,Cのうち,一つでも真なら論理値Zは真である。」

これは連載第17回「真理値表から論理式をつくる 前編」の問題で紹介した命題です。真理値表から次の式を導きましたね。式の簡略化のために,積を表す”・は省略しています。これを論理代数の公式を適用して簡略化してください。

(2)命題「条件A,B,Cのうち,2つ以上真なら論理値Zは真である。」

多数決の論理式です。真理値表を作り,論理式を書き起こし,式を整理してください。

(3)命題「条件A,B,Cのうち,2つだけが真なら論理値Zは真である。」

解説

(1)命題「条件A,B,Cのうち,一つでも真なら論理値Zは真である。」

問題の式は以下のように整理できます。

(2)命題「条件A,B,Cのうち,2つ以上真なら論理値Zは真である。」

先ずは真理値表を作ります。

表21.1 問題(2)の真理値表

ABCZ
0000
0010
0100
0111
1000
1011
1101
1111

表21.1に示す真理値表から次の式が導かれました。

さあ,整理してみましょう。

(3)命題「条件A,B,Cのうち,2つだけが真なら論理値Zは真である。」

先ずは真理値表を作ります。

表21.2 問題(3)の真理値表

ABCZ
0000
0010
0100
0111
1000
1011
1101
1110

表21.2に示す真理値表から次の式が導かれました。さあ,整理してみましょう!と意気込むのですが・

残念ですが,これはこれ以上変形できません。

著者プロフィール

平田敦(ひらたあつし)

地方都市の公立工業高等学校教諭。趣味はプログラミングと日本の端っこ踏破旅行。2010年のLotYはRuby。結城浩氏のような仕事をしたいと妄想する30代後半♂。

コメント

コメントの記入