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

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

【謎解きプログラム】乱数で発生する数値は?【組み合わせ】解答と解説

【謎解きプログラム】乱数で発生する数値は?【組み合わせ】

本問題は、表題のテーマで、プログラムにちなんだ謎を解くというものでした。

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

問題のオープニング

ある日、出社すると、あなたのPCのログイン画面に、謎の挑戦状が表示されていた。

「24時間以内に謎が解けない場合は、このPCのデータは消失する。

 謎は、あなたが真のプログラマーなら解けるものだ」

これは挑戦状ではなく脅迫状だ!

そこには、見たことのない謎が掲載されていた。

あなたは歴戦のプログラマーとして、データを救うために、この謎に挑むことになった。

問題1

あなたは、乱数を発生する式を提示されました。この式で発生する数値としてあり得るものを、選択肢から答えて下さい。

// 式の意味
rnd(a, b) …… a, bは、0~100の整数。a以上、b以下の整数の乱数を発生する。
+ – * / …… 加減乗除の演算子。計算結果の小数点以下は切り捨てられ整数になる。

// 問題の式
rnd(2, 4) + 1

// 選択肢
1
2
3

この問題は、実際に発生する数字をピックアップすれば、どの選択肢と一致するか知ることができます。

まずは、式を変形していく形で求めてみましょう。「rnd(a, b)」を展開したものを、「[a, a+1, ……, b-1, b]」とします。

// 式を変形
  rnd(2, 4) + 1
→ [2, 3, 4] + 1
→ [3, 4, 5]

また、コードを書いて、発生する数値の一覧を出力してみましょう。

// JavaScript コンソールに出力
for (var r1 = 2; r1

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

オスカー2018年晴れ着撮影会