平成20年秋期問9について

午前試験免除制度対応!基本情報技術者試験のeラーニング【独習ゼミ】
ピレカツさん  
(No.1)
"関数eq(X, Y)は,引数XとYの値が等しければ1を返し,異なれば0を返す。整数A,B,C について,eq(eq(A,B),eq(B,C))を呼び出したとき,1が返ってくるための必要十分条件はどれか。"

解答は「ア」ですが、なぜ「ウ」ではだめなのでしょうか。
eq(eq(A, B), eq(B, C)) = eq(eq(A, B), eq(B, A))となり、必ず1が返ってくるように思えます。
2023.08.09 18:35
まーぼさん 
FE シルバーマイスター
(No.2)
平成20年秋期問9
https://www.fe-siken.com/s/kakomon/20_aki/q9.html

ウが必要十分条件ではないからです。

>eq(eq(A, B), eq(B, C)) = eq(eq(A, B), eq(B, A))となり、必ず1が返ってくるように思えます。

これは正しいです。ただそれだけで必要十分条件にはなりません。

問題文にはこうあります。

>関数eq(X, Y)は,引数XとYの値が等しければ1を返し,異なれば0を返す。整数A,B,C について,eq(eq(A,B),eq(B,C))を呼び出したとき,1が返ってくるための必要十分条件はどれか。

つまりウが答えであるとすると

1.「eq(eq(A,B),eq(B,C)) = 1 →  ( A = B かつ B = C )又は A = C」



2.「( A = B かつ B = C )又は A = C → eq(eq(A,B),eq(B,C)) = 1 」

の両方が成り立つということになります。

2はおっしゃる通り、A=Cなら

eq(eq(A, B), eq(B, C)) = eq(eq(A, B), eq(B, A)) = 1

になります。

一方、1は

A = 3,B =4,C =5

とすると、

eq(A,B)=0,eq(B,C)=0ですから

eq(eq(A,B),eq(B,C)) = 1になります。

このときに 「( A = B かつ B = C )又は A = C」
が成り立つか調べると、

( A = B かつ B = C )もA = Cも成り立たないので成り立ちません。

1と2の両方が成り立たなければいけないが、「2は成り立つが1は成り立たない」のでウは必要十分条件ではありません。
2023.08.09 19:08
ピレカツさん  
(No.3)
非常にわかりやすいご回答ありがとうございました。
必要、十分の片方しか成り立っていなかったわけですね。
2023.08.10 01:40

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの投稿はできません。

その他のスレッド


Pagetop