基本情報技術者平成20年秋期 午前問9

午前問9

関数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
  • [この問題の出題歴]
  • 基本情報技術者 H16春期 問8

分類

テクノロジ系 » 基礎理論 » 応用数学

正解

解説

eq(eq(A,B),eq(B,C))の結果が1となるには、eq(A,B)=eq(B,C)であることが条件になります。
まずeq(A,B)=eq(B,C)=1となるのは、A=B かつ B=Cの条件を満たした場合です。(A=B=C=1のとき eq(1,1)=eq(1,1)=1,A=B=C=0のとき eq(0,0)=eq(0,0)=1)
次にeq(A,B)=eq(B,C)=0になるのは、AとBが異なり、BとCも異なっているという条件を満たした場合です。(A=0,B=1,C=0のとき eq(0,1)=eq(1,0)=0,A=1,B=0,C=1のとき eq(1,0)=eq(0,1)=0)

以上のいずれかの条件がそろったときにeq(A,B)=eq(B,C)となりeq(eq(A,B),eq(B,C))=1となるので、1を返すための必要最低条件は「(A=B かつ B=C) 又は (A≠B かつ B≠C)」ということになります。
© 2010-2020 基本情報技術者試験ドットコム All Rights Reserved.

Pagetop