ガジェット通信

見たことのないものを見に行こう

【選択式問題】真偽値パズル解答と解説☆言語不問

DATE:
  • ガジェット通信を≫

真偽値パズル

本問題は、真偽値の計算をおこない、問題の式と同じ結果になる選択肢を選ぶという内容でした。

それでは以下、各問題とその解答を見ていきましょう。

問題のオープニング

あなたは、真偽値の女神「ブーリ=アン」の神殿にやって来ました。

この神殿では、女神の出す問題に正解すれば富を約束され、間違うと死を約束されます。

あなたは、歴戦のプログラマーとして、女神をホゲーッと言わせなければなりません。

この神殿では、以下のような式が提示されます。

!(true&false)|true&false

「true」は真の値、「false」は偽の値を示します。計算結果が同じになる選択肢を選んでください。

// 記号の意味
& … AND演算子
| … OR演算子
^ … XOR演算子
! … NOT演算子
() … グループ化(計算の優先順位を上げる)

問題1

// 問題
true&false|true

// 選択肢
false&false
false|false
!(true^!false)

「&」(AND演算子)は、演算子の左右が共にtureの場合にtrueになります。それ以外の場合は、falseになります。

「|」(OR演算子)は、演算子の左右のどちらかがtureの場合にtrueになります。それ以外の場合は、falseになります。

「^」(XOR演算子)は、演算子の左右の値が違う場合にtrueになります。それ以外の場合は、falseになります。

「!」(NOT演算子)は、演算子の右の値がtrueの場合はfalseに、falseの場合はtrueにします。

問題と選択肢の計算結果は、以下になります。

問題:『true&false|true』→『false|true』→『true』
選択肢1:『false&false』→『false』
選択肢2:『false|false』→『false』
選択肢3:『!(true^!false)』→『!(true^true)』→『!false』→『true』

問題の計算結果は「true」。そのため答えは、3番目の選択肢の『!(true^!false)』になります。

以下、ブラウザのコンソールで確認できるように、JavaScriptのコードを示します(JavaScriptでは、AND、OR、NOT演算子の計算は数値として演算されるので、結果を真偽値にするために「!!( )」で囲って真偽値にしています)

// 参考コード
console.log(“問題:”, !!( true&false|true ));
console.log(“選択肢1:”, !!( false&false ));
console.log(“選択肢2:”, !!( false|false ));
console.log(“選択肢3:”, !!( !(true^!false) ));

// 出力結果
問題: true
選択肢1: false
選択肢2: false
選択肢3: true

問題2

// 問題
true^true

// 選択肢
true&(true|true)
(true&!false)^true
!!!!true

問題と選択肢の計算結果は、以下になります。

問題:『true^true』→『false』
選択肢1:『true&(true|true)』→『true&true』→『true』
選択肢2:『(true&!false)^true』→『(true&true)^true』→『true^true』→『false』
選択肢3:『!!!!true』→『!!!false』→『!!true』→『!false』→『true』

問題の計算結果は「false」。そのため答えは、2番目の選択肢の『(true&!false)^true』になります。

以下、ブラウザのコンソールで確認できるように、JavaScriptのコードを示します。

// 参考コード
console.log(“問題:”, !!( true^true ));
console.log(“選択肢1:”, !!( true&(true|true) ));
console.log(“選択肢2:”, !!( (true&!false)^true ));
console.log(“選択肢3:”, !!( !!!!true ));

// 出力結果
問題: false
選択肢1: true
選択肢2: false
選択肢3: true

問題3

// 問題
(true&false)^(true|false)

// 選択肢
true^true
(true^true)^!false
true&false&true

問題と選択肢の計算結果は、以下になります。

問題:『(true&false)^(true|false)』→『false^(true|false)』→『false^true』→『true』
選択肢1:『true^true』→『false』
選択肢2:『(true^true)^!false』→『false^!false』→『false^true』→『true』
選択肢3:『true&false&true』→『false&true』→『false』

問題の計算結果は「true」。そのため答えは、2番目の選択肢の『(true^true)^!false』になります。

以下、ブラウザのコンソールで確認できるように、JavaScriptのコードを示します。

// 参考コード
console.log(“問題:”, !!( (true&false)^(true|false) ));
console.log(“選択肢1:”, !!( true^true ));
console.log(“選択肢2:”, !!( (true^true)^!false ));
console.log(“選択肢3:”, !!( true&false&true ));

// 出力結果
問題: true
選択肢1: false
選択肢2: true
選択肢3: false

CodeIQ運営事務局より

柳井さん、ありがとうございました!
現在、柳井さんの最新問題が出題中です。
ぜひ挑戦してみてくださいね!

カテゴリー : デジタル・IT タグ :
CodeIQ MAGAZINEの記事一覧をみる ▶
  • 誤字を発見した方はこちらからご連絡ください。
  • ガジェット通信編集部への情報提供はこちらから
  • 記事内の筆者見解は明示のない限りガジェット通信を代表するものではありません。

TOP