2019-倉庫-解説
- 考案国:ロシア
- 正解
- 「10」
- 説明
- 1, 2, 3, 4, 5番のハリネズミと31, 32, 33, 34, 35番のハリネズミは荷物を移動しなくてすみます。
まず、問題の例にあるように、1番のハリネズミは荷物を移動しなくてすみます。実は1番だけでなく、2番から5番のハリネズミも同じです。
次に倉庫の数(5個と6個)を考えると、5で割っても6で割っても余りが0になる数は、0の次は最小公倍数の30です。
そこで、「0に続く1, 2, 3, 4, 5」の次は、「30に続く31, 32, 33, 34, 35」であることがわかります。
- 1, 2, 3, 4, 5番のハリネズミと31, 32, 33, 34, 35番のハリネズミは荷物を移動しなくてすみます。
- 実際のコンピュータでは
- この問題では、データを分割して格納する考え方を扱いました。ハッシュ法と呼ばれるアルゴリズムでは、データを複数の入れ物(倉庫)に分割して格納し、取り出すときは値からどの入れ物に入っているかを計算で求めることで、高速にデータを取り出します。
- わかりやすい例だと、生徒の名簿をアルファベットごとの入れ物に分けておき、「MattiaさんはMの入れ物に入れる」ようなイメージです。
- 今回の問題では、どの入れ物に入っているかを、剰余(割り算の余り)で求めました。例えば倉庫が5個のとき、「1番の倉庫は、1や6のように5で割ったときの余りが1の荷物を入れる」「2番の倉庫は、2や7のように5で割ったときの余りが2の荷物を入れる」「5番の倉庫は、5や10のように5で割ったときの余りが0の荷物を入れる」というやり方です。このようにすると、「13番の荷物はどこにあるかな?」と考えたときに、「13を5で割った余りは3だから3番の倉庫!」とすぐにわかります。