【if文の条件】論理の基礎「命題」とは?例文で意味を解説【数学】

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは。タクマ™ [@suwaru_blog] です。

これから何度かに分けて「論理」の解説を行っていきます。
初回である今回は「命題」という用語について説明をします。

命題

「正しいか、正しくないか判断できる文」のことを命題 (proposition) と呼びます。
命題の結果は必ず、真 (true) か 偽 (false) となります。

true と false どちらも満たしてしまう、
またはどちらも満たさないものは命題ではありません。

プログラマーにとっては、if 文の「条件」と言った方がわかりやすいかもしれません。

完璧な条件パターン

  • とあるバス会社の乗車料金ルール A
    • 乗客の年齢が 6 歳以上
      • 100 円
    • 乗客の年齢が 6 歳未満
      • 0 円

命題の作成

乗客サンプルを用意して、命題を作成してみます。

  • アリス (13 歳) の年齢は 6 歳以上である
    • 真 (true) の命題
  • ボブ (4 歳) の年齢は 6 歳以上である
    • 偽 (false) の命題
  • チャーリー (6 歳) の年齢は 6 歳以上である
    • 真 (true) の命題

命題の結果

結果を乗車料金に当てはめます。

  • 13 歳アリスの乗車料金
    • 100 円
  • 4 歳ボブの乗車料金
    • 0 円
  • 6 歳チャーリーの乗車料金
    • 100 円

網羅的

条件に漏れがないようにすることを「網羅的である」と言います。

漏れがある条件パターン

  • とあるバス会社の車料金ルール B
    • 乗客の年齢が 6 歳より上
      • 100 円
    • 乗客の年齢が 6 歳未満
      • 0 円

上記ルールには「漏れ」があります。
乗客がちょうと 6 歳の場合、いくらになるのか定義されていません。

これはルールとして不適切です。

排他的

条件にダブりがないようにすることを「排他的である」と言います。

ダブりがある条件パターン

矛盾あり

  • とあるバス会社の車料金ルール C
    • 乗客の年齢が 6 歳以上
      • 100 円
    • 乗客の年齢が 6 歳以下
      • 0 円

上記ルールには「ダブり」があります。
6 歳以上と 6 歳以下では、両方に 6 歳があります。

これはルールとして不適切なだけではなく、矛盾があります。

矛盾なし

  • とあるバス会社の車料金ルール D
    • 乗客の年齢が 6 歳以上
      • 100 円
    • 乗客の年齢が 6 歳
      • 100 円
    • 乗客の年齢が 6 歳未満
      • 0 円

上記ルールには「ダブり」はありますが、矛盾はありません。

MECE (網羅的で排他的な分割)

網羅的で排他的になるよう、大きな問題を小さな問題として分割していくことを、
MECE (Manually Exclusive and Collectively Exhaustive) と言います。

if 文の条件は「網羅的で排他的な分割」がなされていることが必須です。

if 文で命題を表現する

  • とあるバス会社の乗車料金ルール A
    • 乗客の年齢が 6 歳以上
      • 100 円
    • 乗客の年齢が 6 歳未満
      • 0 円

命題を if 文で表現してみましょう。

if (乗客の年齢が 6 歳以上である) {
    「料金は 100 円」と表示する
} else {
    「料金は 0 円」と表示する
}

網羅的で排他的になるように、小さな 2 つの問題として分割できています。
つまり「漏れ」も「ダブり」もありません。

ここまで当たり前の話に聞こえたかもしれませんが、
用語として「命題」と「網羅的で排他的な分割」は押さえておいてください。

CS シリーズ

次回

前回

お仕事ください!

僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。
なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。

コメント

コメントを残す

*