Re: 大文字と小文字の区別
すぎたです。
# 論理学というのは知らないので xor に反応。
In message news:040909144249.M0189120@sma.gssm.otsuka.tsukuba.ac.jp
<kuno@gssm.otsuka.tsukuba.ac.jp> wrote ...
> そう? だって A and B = 〜 (〜A or 〜B) でしょ? だからandかorの
> 片方あれば他方は作れる。で、A xor B = (A or B) and 〜(A and B)。
if 文に慣れてる人は、そちらで書いたほうがわかりやすいかも。
if (a && b) {
} else {
}
else 側は !a || !b になるので、真偽を入れ換えて
if (!(!a || !b)) {
} else {
}
まぁ、01 を書いてしまうのが一番わかりやすいという話はあります。
a b and /a/b or not
0 0 0 1 1 1 0
0 1 0 1 0 1 0
1 0 0 0 1 1 0
1 1 1 0 0 0 1
あと xor の補足ですが、10 または 01 のとき 1 なので、
(a && !b) || (!a && b)
= ((a && !a) || (a && !b)) || ((b && !b) || (!a && b))
= (a && (!a || !b)) || (b && (!a || !b))
= (a || b) && (!a || !b)
= (a || b) && !(a && b)
となります。
xor というと、以前、値の入れ換えに使っているのを見て
なるほどと思った憶えがあります。
# 良いかどうかは別にして。
a ^= b
b ^= a
a ^= b
--
杉田
sugi-nws@bk.iij4u.or.jp
Fnews-brouse 1.9(20180406) -- by Mizuno, MWE <mwe@ccsf.jp>
GnuPG Key ID = ECC8A735
GnuPG Key fingerprint = 9BE6 B9E9 55A5 A499 CD51 946E 9BDC 7870 ECC8 A735