関数eq(X , Y )は、引数X とY の値が等しければ1を返し、異なれば0を返す。
整数A , B , C について、eq(eq(A , B ), eq(B , C ))を呼び出したとき、1が返ってくるための必要十分条件はどれか。
ア
(A = B かつB = C )又は(A ≠ B かつB ≠ C )
イ
(A = B かつB = C )又は(A ≠ B 又はB ≠ C )
ウ
(A = B かつB = C )又はA = C
エ
(A = B 又はB = C )又はA = C
答え ア
【解説】
eq(eq(A , B ), eq(B , C ))が1となるには、
eq(A , B ) = 1かつeq(B , C ) = 1 …(1)
eq(A , B ) = 0かつeq(B , C ) = 0 …(2)
のときである。
(1)の時は『A = B かつB = C 』であり、(2)の時は『A ≠ B かつB ≠ C 』である。
したがって、eq(eq(A , B ), eq(B , C ))が1となる必要十分条件は、 (A = B かつB = C )又は(A ≠ B かつB ≠ C )
(ア)である。
また、真理値表を作成し規則性を見つける解き方もある。
eq(eq(A , B ), eq(B , C ))の真理値表を作成すると