1 / 10 ブロック10%

上下にスクロールするかキーボードの上下キーを使うと、次の学習カードへ進めます。

イントロ

歴史的な問題を状態へ翻訳する

油量を数の組で記録する

10升の油を7升枡と3升枡で5升ずつに分ける和算の問題です。勘だけで注ぐのではなく、三容器の量を数の組として残すと、可能な操作と行き止まりを検証できます。昔の生活課題も現代の数学的表現で考え直せます。

定義

状態

教科書では
ある時点の三容器の油量を、(10升桶, 7升枡, 3升枡)の順の数の組で表したものです。
言いかえると
最初は(10,0,0)、目標は(5,5,0)です。一回の操作は、一方が空になるか受け手が満杯になるまで注ぐことです。目盛りは使えないため途中で都合よく止めません。順番を固定すれば同じ数の組が必ず同じ状況を意味し、手順を他者と比較できます。
要点

動いても変わらない条件

注ぐ前後で総量は10升のままです。さらに各成分は0以上で、容器の容量を超えません。この二条件は候補状態の誤りをすぐ除く検算になります。

  1. 1

    三つの数の合計は常に10

  2. 2

    各量は0以上で容量以下

  3. 3

    注ぐ量を勝手に途中で止めない

  4. 4

    既に出た状態へ戻る手は避ける

図解10升、7升、3升の容器と、初期状態から目標状態までの状態遷移
容器の絵だけでなく各段階を数の組で残すと、総量10と容量制約を毎回確認できます。図の二つの矢印は、受け手の7升枡、3升枡が順に満杯になる一手です。
手順

状態を探す手順

  1. 1

    三容器の順番、容量、初期状態と目標状態を決める

  2. 2

    注ぎ手が空か受け手が満杯になる操作を列挙する

  3. 3

    総量10と各上限を確かめて次状態を記録する

  4. 4

    既出状態へ戻る手を避け、目標の5と5を探す

場面
初期状態(10,0,0)から、10升桶と7升枡に5升ずつ分ける。
順に考えると
一つの経路は(10,0,0)→(3,7,0)→(3,4,3)→(6,4,0)→(6,1,3)→(9,1,0)→(9,0,1)→(2,7,1)→(2,5,3)→(5,5,0)です。例えば(3,4,3)→(6,4,0)では3升枡を10升桶へ空になるまで戻します。各矢印で注ぎ手が空か受け手が満杯になり、合計10も保たれます。
ここが結論
最後は10升桶と7升枡に5升ずつ、3升枡は空です。経路の各状態が制約を守るため、単なる答えではなく実行可能な手順になっています。
注意

目盛りを仮定しない

確認

確認テスト

Q1

状態(3,7,0)から7升枡の油を3升枡へ満杯まで注ぐと、次状態はどれですか。

まとめ

まとめ

  1. 1

    歴史的な問題も状態として整理できる

  2. 2

    数の組は容器の順番を固定して書く

  3. 3

    操作の前後で総量10が変わらないと確認する

  4. 4

    各容器の量は0以上で容量以下に保つ

  5. 5

    既出状態を記録して同じ循環を避ける

  6. 6

    一手の根拠を空または満杯で説明する

What's New

新しいカテゴリが追加されました

  1. 日商簿記3級
  2. FP3級
  3. AWS Certified Solutions Architect - Associate
更新履歴をすべて見る