ガジェット通信 GetNews

見たことのないものを見に行こう
  • 【映画クロスレビュー】ジャニーズとサブカルが奇跡の融合! 『味園ユニバース』を「赤犬」好き女子はこう観た
  • ほむら衝撃の行動の意味は? 『劇場版 魔法少女まどか☆マギカ [新編]叛逆の物語』特報映像
  • 本紙ヴァラエティが選ぶ、2016年に注目すべき監督10人
  • 【ホラー通信セレクト 今週公開の映画】2018/2/24号:未体験ゾーン2018『7WISH』『ザ・ボルト』『ゾンビ・レックス 殺人ゾンビ恐竜誕生』
  • 行定勲監督 映画『ナラタージュ』で「首が繋がった」 “ヒットしなかったら路線変更”発言に会場どよめく
  • 『ミッション:インポッシブル/フォールアウト』の上映会がロケ地ノルウェーの断崖絶壁で開催 トム・クルーズは不参加
  • そのリアルな振動・動きに戦車好き心が騒ぐ! MX4D『戦車ライド』に乗ってみた
  • 『トゥームレイダー ファースト・ミッション』美しき主人公ララ・クロフトを取り巻く“4つの謎”
  • ライアン・ゴズリング、アカデミー作品賞の発表ミスで笑った理由を説明
  • 『イナズマイレブン』第2回キャラクター人気投票決定 1月8日から開始
  • ウェス・アンダーソン監督の映画『Isle of Dogs(原題)』、ポスターと公開日を発表
  • 米ディズニー、映画『Castle Hangnail(原題)』をエレン・デジェネレスとともに製作進行中
  • 【動画】オーウェン・ウィルソンとエド・ヘルムズが父親を探す映画『Father Figures(原題)』、トレーラーが公開
  • 竹内力が力説で大絶賛 映画『ザ・タウン』男性限定試写会
  • 全財産725円で学校を設立?! 驚きの実話を映画化した『サムライフ』
  • 寂しい人にネコ貸します 荻上直子監督の貸し猫ムービー『レンタネコ』5月公開

体験を伝える―『ガジェット通信』の考え方

面白いものを探しにいこう 本物を体験し体感しよう 会いたい人に会いに行こう 見たことのないものを見に行こう そしてそれをやわらかくみんなに伝えよう [→ガジェ通についてもっと詳しく] [→ガジェット通信フロアについて]

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

真偽値パズル2

本問題は、仮想コードを計算した結果、trueになる行の数を選択肢から選ぶという内容でした。

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

問題のオープニング

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

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

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

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

true | false
true & false

「true」は真の値、「false」は偽の値を示します。各行の計算を行い、計算結果が「trueになる行の数」を答えてください(上記の場合は、1行目のみ計算結果がtrueになるので、答えは1です)。

// 仮想コードのルール
& … AND演算子(2つの値が共にtrueならtrue、それ以外はfalse)
| … OR演算子(2つの値のどちらかがtrueならtrue、それ以外はfalse)
^ … XOR演算子(2つの値が異なるならtrue、それ以外はfalse)
! … NOT演算子(直後の値の真偽を変える)
() … グループ化(計算の優先順位を上げる)

問題1

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

// 選択肢
1
2
3

仮想コードの各行を、実際に計算してみましょう。

// 1行目
true | false

「|」OR演算子では、2つの値のどちらかがtrueならtrue、それ以外はfalse。

true

// 2行目
true & false

「&」AND演算子では、2つの値が共にtrueならtrue、それ以外はfalse。

false

// 3行目
true ^ false

「^」XOR演算子では、2つの値が異なるならtrue、それ以外はfalse。

true

「true」の数は2つでした。そのため答えは、2番目の選択肢の『2』になります。

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

// 参考コード

// 問題
var p1, p2, p3;
console.log(p1 = !!( true | false ));
console.log(p2 = !!( true & false ));
console.log(p3 = !!( true ^ false ));
console.log(p1 + p2 + p3);

// 出力結果
true
false
true
2

問題2

// 問題
true | !false
true & !false
!true | false
!true & false

// 選択肢
2
3
4

仮想コードの各行を、実際に計算してみましょう。

// 1行目
true | !false

「!」NOT演算子では、直後の値の真偽を変える。

true | true

次の計算。

true | true

「|」OR演算子では、2つの値のどちらかがtrueならtrue、それ以外はfalse。

true

// 2行目
true & !false

「!」NOT演算子では、直後の値の真偽を変える。

true & true

次の計算。

true & true

「&」AND演算子では、2つの値が共にtrueならtrue、それ以外はfalse。

true

// 3行目
!true | false

「!」NOT演算子では、直後の値の真偽を変える。

false | false

次の計算。

false | false

「|」OR演算子では、2つの値のどちらかがtrueならtrue、それ以外はfalse。

false

// 4行目
!true & false

「!」NOT演算子では、直後の値の真偽を変える。

false & false

次の計算。

false & false

「&」AND演算子では、2つの値が共にtrueならtrue、それ以外はfalse。

false

「true」の数は2つでした。そのため答えは、1番目の選択肢の『2』になります。

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

// 参考コード

// 問題
var p1, p2, p3, p4;
console.log(p1 = !!( true | !false ));
console.log(p2 = !!( true & !false ));
console.log(p3 = !!( !true | false ));
console.log(p4 = !!( !true & false ));
console.log(p1 + p2 + p3 + p4);

// 出力結果
true
true
false
false
2

問題3

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

// 選択肢
1
2
3

仮想コードの各行を、実際に計算してみましょう。

// 1行目
(true | false) & true

「()」グループ化は、計算の優先順位を上げる。
「|」OR演算子では、2つの値のどちらかがtrueならtrue、それ以外はfalse。

true & true

次の計算。

true & true

「&」AND演算子では、2つの値が共にtrueならtrue、それ以外はfalse。

true

// 2行目
(true ^ false) | true

「()」グループ化は、計算の優先順位を上げる。
「^」XOR演算子では、2つの値が異なるならtrue、それ以外はfalse。

true | true

次の計算。

true | true

「|」OR演算子では、2つの値のどちらかがtrueならtrue、それ以外はfalse。

true

// 3行目
(true & false) ^ true

「()」グループ化は、計算の優先順位を上げる。
「&」AND演算子では、2つの値が共にtrueならtrue、それ以外はfalse。

false ^ true

次の計算。

false ^ true

「^」XOR演算子では、2つの値が異なるならtrue、それ以外はfalse。

true

// 4行目
!!! true & !!!! false

「!」NOT演算子では、直後の値の真偽を変える。

!!false & !!!! false

次の計算。

!!false & !!!! false
!true & !!!! false

次の計算。

!true & !!!! false
false & !!!! false

次の計算。

false & !!!! false
false & !!!true

次の計算。

false & !!!true
false & !!false

次の計算。

false & !!false
false & !true

次の計算。

false & !true
false & false

次の計算。

false & false

「&」AND演算子では、2つの値が共にtrueならtrue、それ以外はfalse。
false

「true」の数は3つでした。そのため答えは、3番目の選択肢の『3』になります。

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

// 参考コード

// 問題
var p1, p2, p3, p4;
console.log(p1 = !!( (true | false) & true ));
console.log(p2 = !!( (true ^ false) | true ));
console.log(p3 = !!( (true & false) ^ true ));
console.log(p4 = !!( !!! true & !!!! false ));
console.log(p1 + p2 + p3 + p4);

// 出力結果
true
true
true
false
3

CodeIQ運営事務局より

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

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