たこぜりー研究室

大腸菌DNAは4.64Mbp。酵母は13Mbpで、ヒトは3Gbp

スポンサーサイト

#
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

循環水送り問題

#143
今期は教養系の単位補充に、情報基礎 C をとり、Java を学んでおりますたこぜりーです。
つーことで、課題をこなし中。

【循環水送り問題】
N 人の人が両手にバケツを持ち、円周上に並んでいる。すべての人が一定時間ごとに次の操作を行なう。

1) 右手のバケツに入っている水の半分を、左手のバケツに移す。
2) そして左手のバケツの水を全部、左隣の人の右手のバケツに加える。

最初の人の右手のバケツにだけ初期量の水が入っていて、 他のバケツは空だとする。

メインの処理はこうなる。

for (i = 1; i < n; i++) {
  // 各人が左手のバケツに移す。
  left[i] = right[i] / 2;
  right[i] = right[i] / 2;
  // 右隣の左手のバケツの水を受け取る。
  right[i] += left[i - 1];
  left[i - 1] = 0;
}


で、たとえば初期量を 1.0 ℓ 、人数を 3 人でやると、27 回目ぐらいから全員、0.3333333 ℓ でおちつく。
さらに 10 人でやると、0.1 ℓ ぐらいに収束してくるらしいことはわかるのだが、200 回ではまだ 0.09999293 ℓ な人がいる。

コメント


コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバックURL:  http://takojelly.blog2.fc2.com/tb.php/143-00a45f44
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。