情報数学 I

第四回 (2013年10月18日)

組み合わせ、命題
Combinations, Propositions

Martin J. Dürst

http://www.sw.it.aoyama.ac.jp/2013/Math1/lecture4.html

AGU

© 2005-13 Martin J. Dürst 青山学院大学

今日の内容

前回のまとめ

Homework from Last Lecture (1, 2)

1. Create a set with four elements. If you use the same elements as other students, a deduction of points will be applied.

[本年度のために削除]

Homework from Last Lecture (3)

3. For sets A of size zero to six, create a table of the sizes of the powersets (|P(A)|).

[本年度のために削除]

Homework from Last Lecture (4, 5)

4. Express the relationship between the size of a set A and the size of its powerset P(A) as a formula.

[本年度のために削除]

Homework from Last Lecture (6)

6. Create a table that shows, for sets A of size zero to five, and for each n (size of sets in P(A)), the number of such sets.

[本年度のために削除]

パスカルの三角形

(Pascal's triangle)

一行目の (0 ... 0) 1 (0 ... 0) からスタートし、左上と右上の数を足し合わせる

                  1
                1   1
              1   2   1
            1   3   3   1
          1   4   6   4   1
        1   5  10  10   5   1
      1   6  15  20  15   6   1
    1   7  21  35  35  21   7   1
  1   8  28  56  70  56  28   8   1

 

パスカルの三角形の性質

インドで紀元前から知られ、多くの性質が知られている

ここで次の関係や性質を説明・証明:

部分集合の数とパスカルの三角形

 

パチンコ玉の道の数とパスカルの三角形

部分集合と組み合わせ

パスカルの三角形の一ヶ所の直接計算

宿題 4 として証明

階乗

(factorial)

書き方: n!

定義: n! = 1 · 2 · ... (n-1) · n = ∏ni=1 i

問題:

1! = 1

0! = 1

演算の単位元

(unit element, identity element, neutral element)

複数の演算を行うプログラムの構造

具体例 (合計):

int sum = 0;
for (i=0; i<end; i++)
    sum += array[i];

一般の構造

C プログラム言語の場合:

type result = 単位元;
for (i=0; i<end; i++)
    result = result 演算子 array[i];

Ruby の場合:

array.inject(単位元) do |memo, next|
  memo 演算子 next
end

命題

(proposition 又は statement)

正しいか正しくないかが客観的に決められる文
(正しいものでも正しくないものでも良い)

命題ではないのは主観的な記述、質問、一部が決定されてない、代名詞や変数を含む発話など

命題の例と反例

例:

反例 (命題ではない):

 

命題の真偽

命題は正しいか正しくないかである。

「正しい」は「真」(しん、true) と言い、T、⊤ や 1 と書く

「正しくない」は「偽」(ぎ、false) と言い、F、⊥ や 0 と書く

真と偽はともに真理値 (truth value)

真理値の他の表現: ○/× など

真偽のプログラム言語での取り扱い

プログラム言語や環境により、取り扱いが違う

 

論理演算などの情報テクノロジーでの役割

モデル化

Operation on Propositions: And

Based on two propositions A and B, we can construct the following proposition:

A and B

We write AB (also: A·B, or A B)

AB is defined as follows:
If both A and B are true, then AB is true.
Else, AB is false.

We can also write this in functional notation: AND(A, B)

Examples:
4 is smaller than 5 and is even. T
7 is smaller than 5 and is even. F
8 is smaller than 5 and is even. F
3 is smaller than 5 and is even. F

 

Truth Table for Logical And

A B AB
F F F
F T F
T F F
T T T

Logical Operations

With logical operations, we can create compound propositions from simpler propositions.

The most frequently used logical operations are as follows:

Disjunction

Based on two propositions A and B, we can construct the following proposition:

A or B

A or B is written AB (also: A+B)

AB is defined as follows:
If both A and B are false, then AB is false.
Else, AB is true.

We can also write this in functional notation: OR(A, B)

Examples:
4 is smaller than 5 or is even. T
8 is smaller than 5 or is even. T
3 is smaller than 5 or is even. T
7 is smaller than 5 or is even. F

Truth Table for Logical Or

A B AB
F F F
F T T
T F T
T T T

 

Negation

Based on one proposition A, we can construct the following proposition:

not A

not A is written ¬A (also A' or A or ~A).

¬A is true if A is false, and is false if A is true.

We can also write this in functional notation: NOT(A)

Examples:
4 is not even. F
4 is not odd. T

Truth Table for Logical Not

A ¬A
F T
T F

 

Structure of Logical Formulæ

We can creat a logical formula from propositions, propositional variables, and logical operators.

Example: (A ∨ (¬B)) ∧ C

(operator) precedence and omission of parentheses:

For logical operators, ¬ has higher precedence than ∧, which has higher precedence than ∨.

Well-Formed Formula

(WFF)

Goal: Make the structure (grammar) of logical formulæ clear.

All of the following are well-formed formulæ

Formulæ that do not fit the above definition are not well-formed formulæ.
(Attention: In a later lecture, we will introduce more logical operators.)

Logical Formula Evaluation with a Truth Table

Truth tables are often used for:

Example formula: (A ∨ (¬B)) ∧ B

Simplification (the parentheses around ¬B are unnecessary): (A ∨ ¬B) ∧ B

Evaluation Using a Truth Table

A B ¬B A ∨ ¬B (A ∨ ¬B) ∧ B
F F T T F
F T F F F
T F T T F
T T F T T

 

How to Write a Truth Table

How to Use a Truth Table for a Proof

A B AB AAB
F F F F
F T F F
T F F T
T T T T

Boolean Functions

今回の宿題

  1. Moodle で Truth Table 1 のクイズを解く (全正解でない場合、繰り返す、締切: 10月24日 (木) 20:00)
  2. Moodle で Truth Table 2 のクイズを解く (全正解でない場合、繰り返す、締切: 10月24日 (木) 20:00)
  3. Moodle で Propositions: True or False のクイズを解く (全正解でない場合、繰り返す、締切: 10月31日 (木) 20:00)
  4. nCm = n!/m! (n-m)! を証明しなさい。(締め切りは下記の通り)
    ヒント: 部分集合の数とパスカルの三角形を参照
  5. 論理演算子 ∨、∧、¬ の性質を調べて名前とともに列挙しなさい。(締め切りは下記の通り)
    ヒント1: 集合演算の性質を参考
    ヒント2: 真理表を使って確認

宿題 4 と 5 の提出: 11月 7日 (木) 19時00分締切; O 棟 529号室の前の箱 (10月28日から設置) に提出; A4 一枚 (両面可; 表紙なし) 厳守; 名前と学生番号を忘れずに記述; 解答は読みやすい手書きのこと

これからの予定

10月24日 (木) 20:00: 宿題 1 と 2 の提出締切

10月25日 (金) は海外出張のために情報数学 I だけ休講

10月31日 (木) 20:00: 宿題 3 の締切

11月 1日 (金) は青山祭のためお休み

11月 7日 (木) 19:00: 宿題 4 と 5 の締切

11月 8日 (金) 第五回の授業

Glossary

(logical) and
かつ
conjunction
論理積
truth table
真理表
logical operation
論理演算
compound proposition
複合命題
(logical) or
又は
disjunction
論理和
(logical) not
ではない
negation
論理否定
logical formula
論理式 (複数: formulæ または formulas)
well-formed (logical) formula
整論理式
grammar
文法
propositional variable
命題変数
(operator) precedence
(演算子の) 優先順位
evaluation
(式の) 評価
parentheses
括弧
subexpression
部分式
Boolean function
論理関数、ブール関数
Boolean argument
論理引数 (ひきすう; ブール引数とも言う)
domain (of a function)
(関数の) 定義域
range (of a function)
(関数の) 値域