情報領域演習第一:P演習

電気通信大学情報理工学域I類 (情報系)
2018年度後学期


[一覧に戻る]


課題E4

問題

次のようなパズルを目にしたことがあるかもしれない.
容積が4リットルと7リットルのバケツを1つずつ使って,2リットルの水を汲むにはどうしたらよいか? (ただし,バケツに目盛はついていない.)
このパズルにおける操作を模倣するプログラムを作成してみよ.

まず,2つのバケツの中にある水の量を,要素数が2である配列\$bucketで表す. つまり,容積が4リットルの容器の番号を0,容積が7リットルの容器の番号を1とすると,容器0の中にある水の量は\$bucket[0]であり,容器1の中にある水の量は\$bucket[1]である.単位はリットルである. 容器の中にある水の量の初期値はどちらも0であるとする.

そして,次の操作を行うメソッドを作成する.

入力仕様

出力仕様

irb> initialize_bucket
=> [0, 0]
irb> fill 0
=> [4, 0]
irb> transfer 0
=> [0, 4]
irb> fill 0
=> [4, 4]
irb> transfer 0
=> [1, 7]
irb> empty 1
=> [1, 0]
irb> transfer 0
=> [0, 1]
irb> fill 0
=> [4, 1]
irb> transfer 0
=> [0, 5]
irb> fill 0
=> [4, 5]
irb> transfer 0
=> [2, 7]
irb> empty 1
=> [2, 0]

提出法

CED (CentOS) にて,プログラムを作成したディレクトリで以下を実行せよ.
% ~oa000833/enshu1p/checker_e4.rb ファイル名
「Submission successfully completed.」と表示されれば,提出が完了したことになる.


[一覧に戻る]


[Teaching Top] [Top]
okamotoy@uec.ac.jp