情報数学 I
第四回 (2013年10月18日)
組み合わせ、命題
Combinations, Propositions
Martin J. Dürst
http://www.sw.it.aoyama.ac.jp/2013/Math1/lecture4.html
© 2005-13 Martin
J. Dürst 青山学院大学
今日の内容
- 前回のまとめと宿題
- 組み合わせとパスカルの三角形
- 階乗と単位元
- 命題
- 論理式の作り方と使い方
- 論理演算
- 今週の宿題
前回のまとめ
- 集合は数学の中心的な概念
- 就業の表現: 外延的記法、内包的記法、ベン図
- 集合の元 (b ∈ A)、部分集合 (B
⊂ A)、冪集合(P(A))、全集合
(U)
- 集合の演算: 積集合、和集合、差集合、補集合
- よく使われる数の集合: 自然数 (ℕ)、 整数
(ℤ)、有理数 (ℚ)、実数 (ℝ)、複素数 (ℂ)
- 集合 (演算) の法則
- 法則は雛形として考え、様々な集合と演算で (非)
成立
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
パスカルの三角形の性質
インドで紀元前から知られ、多くの性質が知られている
ここで次の関係や性質を説明・証明:
- 部分集合の数とパスカルの三角形
- パチンコ玉の道の数とパスカルの三角形
- 部分集合と組み合わせ
- パスカルの三角形の一ヶ所の直接計算
- 集合 A で |A| = n
の場合、部分集合の数
|{B|B⊂Aかつ|B|=m}|
を nCm
と書く
- nCn =
1 (大きさ n の部分集合は A だけ)
- nC0 = 1
(空の部分集合は空集合一つ)
- nCm =
n-1Cm-1
+ n-1Cm
を n>0, 0<m<n
の場合に証明できればよい (証明の手法:
数学的帰納法)
- |D|=n-1 から |A| = n
の集合を作ると元が一つ増え、これを g
と書く
- A の g を含まない大きさ m
の部分集合は D の大きさ m
の部分集合と同数
(n-1Cm)
- A の g を含む大きさ m
の部分集合は D の大きさ m-1
の部分集合と同数
(n-1Cm-1)
パチンコ玉の道の数とパスカルの三角形
- パスカルの三角形の列で、数の間にピンをおく
- 最上の 1 から玉を流す
- 違う道の数を数える
- ある高さまでの違う道の数の合計は
2n
- ある場所までの違う道の数はパスカルの三角形の数と同じ
部分集合と組み合わせ
- 組み合わせ論は情報テクノロジーにおいて大切
- 組み合わせ論は色々な条件、制限の場合の「違う」ものを数えて論じるのが目的
- 単に「組み合わせ」というとある集合からだぶりのない様にある数のものを順番を気にせずに選ぶという意味
- これはちょうど部分集合の数と同じ
- 組み合わせは英語で combination と言って、これは
nCm の
C の由来
- 他に順列 (permutation)、重複順列 (repeated
permutation)、重複組み合わせ (repeated combination)
などが存在
パスカルの三角形の一ヶ所の直接計算
宿題 4 として証明
階乗
(factorial)
書き方: n!
定義: n! = 1 · 2 · ... (n-1) · n =
∏ni=1 i
問題:
1! = 1
0! = 1
演算の単位元
(unit element, identity element, neutral element)
- 足し算の単位元: 0
- 掛け算の単位元: 1
- 和集合の単位元: {}
- 積集合の単位元: U
- 引き算の単位元:
複数の演算を行うプログラムの構造
具体例 (合計):
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)
正しいか正しくないかが客観的に決められる文
(正しいものでも正しくないものでも良い)
命題ではないのは主観的な記述、質問、一部が決定されてない、代名詞や変数を含む発話など
命題の例と反例
例:
- 2 掛ける 2 が 4 である。
- 10 が 5 より小さい。
- 4 が奇数 (four is odd)。
- 明日 (2013/10/19) は淵野辺に雨が降る。
反例 (命題ではない):
- 彼女の誕生日は今日 (2013/10/12) である。
理由: 彼女が未定
- x が偶数 (x is even)。理由: 未定な変数
- 今朝いつ起きたか。理由: 質問
- 納豆は美味しい。理由:
主観的な意見
命題の真偽
命題は正しいか正しくないかである。
「正しい」は「真」(しん、true) と言い、T、⊤ や 1
と書く
「正しくない」は「偽」(ぎ、false) と言い、F、⊥ や 0
と書く
真と偽はともに真理値 (truth value)
真理値の他の表現: ○/× など
真偽のプログラム言語での取り扱い
プログラム言語や環境により、取り扱いが違う
- C の場合:
- 整数の
0
は偽に相当
0
以外の整数は全て真に相当
- 真理値に整数の型を使用
- Unix shell:
- Java の場合:
- 偽は
false
、真は true
- 整数 (
int
) と真理値 (boolean
)
は完全に別の型
- Ruby の場合:
- 偽は
false
、真は true
false
と nil
(空・無)
は偽、それ以外の値は真
論理演算などの情報テクノロジーでの役割
- 実世界の事実のモデル化
- プログラム言語の論理演算のモデル化
- 電子回路のモデル化
モデル化
- 実世界の事実の是非を命題でとらえる
- 事実の関係を命題の関係でとらえる
- 命題の関係を論理式で整理する
- 整理の結果を実世界に応用する
Operation on Propositions: And
Based on two propositions A and B, we can construct
the following proposition:
A and B
We write A ∧ B (also: A·B, or
A B)
A ∧ B is defined as follows:
If both A and B are true, then A ∧ B is true.
Else, A ∧ B 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 |
A ∧ B |
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:
- and: A ∧ B (conjunction)
- or: A ∨ B (disjunction)
- not: ¬A (negation)
Disjunction
Based on two propositions A and B, we can construct
the following proposition:
A or B
A or B is written A ∨ B (also:
A+B)
A ∨ B is defined as follows:
If both A and B are false, then A ∨ B is false.
Else, A ∨ B 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 |
A ∨ B |
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
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:
- Each operator has a given precedence.
- Operators with higher precedence get evaluated first.
- If the order of evaluation is not correct, we use parentheses to fix
it.
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æ
- Propositions
- Propositional variables
- If W and V are well-formed formulæ, then the
following are also well-formed formulæ:
(W)、¬W、W ∧
V、W ∨ V
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:
- Defining logical operations
- Evaluating logical formulæ
- Proofs of properties of logical operations and formulæ
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
- Create a column for each variable that appears in the formula.
- Starting the the simplest subexpression, add a column for each
subexpression in the formula.
- Add a column for the overall formula.
- Create one row for the headers, and 2n rows for
entries, where n is the number of variables
- Fill in the variable columns. Start with FF... in the first row. End with
TT... in the last row. When converting F to 0 and T to 1, the variable
columns should show the binary numbers from 0 to
2n-1.
- Fill in the subexpression columns and the final column by calculating
each value from earlier columns.
- Example: Write a truth table for (D ∧ ¬F) ∨
¬E
How to Use a Truth Table for a Proof
- Goal: Prove one of the absorbtion laws for ∨ and ∧: A∨A∧B
= A.
- Method:
- Create a truth table for both sides of the law.
- Compare the columns for both sides.
- If the columns are equal, the law is proved.
A |
B |
A ∧ B |
A ∨
A∧B |
F |
F |
F |
F |
F |
T |
F |
F |
T |
F |
F |
T |
T |
T |
T |
T |
Boolean Functions
- A boolean function calculates a truth value from zero or more Boolean
arguments.
- The domain of a boolean function are zero or more truth values.
- The range of a boolean function is a single truth value.
- Because Boolean arguments only take the values true and
false, the number of Boolean functions is quite limited.
今回の宿題
- Moodle で Truth Table
1 のクイズを解く
(全正解でない場合、繰り返す、締切: 10月24日 (木)
20:00)
- Moodle で Truth Table
2 のクイズを解く
(全正解でない場合、繰り返す、締切: 10月24日 (木)
20:00)
- Moodle で Propositions:
True or False のクイズを解く
(全正解でない場合、繰り返す、締切: 10月31日 (木)
20:00)
- nCm =
n!/m! (n-m)!
を証明しなさい。(締め切りは下記の通り)
ヒント: 部分集合の数とパスカルの三角形を参照
- 論理演算子 ∨、∧、¬
の性質を調べて名前とともに列挙しなさい。(締め切りは下記の通り)
ヒント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)
- (関数の) 値域