Weekend Mathematics/情報/モデル化とシミュレーション/置き傘の問題
・・・2本の置き傘・・・
自分用の傘は2本、雨が降っていれば傘をさすが、降っていなければ傘は持たない。 家を出ようとして雨が降っているが傘がない場合は家族のものを借りる、この傘はその日のうちに返す。 大学を出ようとして、雨が降っているにも関わらず傘がないというケース(タクシー利用)が2ヶ月の間にどれだけ発生するか?ただし、確率分布は以下のとおり
- Pr{一日中晴れている}=0.1
- Pr{一日中雨が降る}=0.2
- Pr{雨のち晴れ}=0.3
- Pr{晴れのち雨}=0.4
条件を整理してみます。
天気 確率 家 大学 晴れ 0.1 変化なし 変化なし 雨 0.2 変化なし 変化なし 雨→晴 0.3 家に傘が1本以上あれば1本減る、なければ変化なし 家に傘が1本以上あれば1本増える、なければ変化なし 晴→雨 0.4 大学に傘が1本以上あれば1本増える、なければタクシー 大学に傘が1本以上あれば1本減る、なければタクシー
お天気を乱数発生で求め、2本の傘の動きをシミュレーションする。 (ブラウザの更新ボタンを押してください。)
| 日 | 乱数 | 天気 | 家 | 大学 | タクシー |
|---|---|---|---|---|---|
| 1 | 1 |
Java Script によるプログラム
<Script Language="JavaScript">
<!--
x=1 //家にある傘の数:初期値1
y=1 //大学にある傘の数:初期値1
a=0.1 //一日中晴れの確率
b=0.2 //一日中雨の確率
c=0.3 //雨のち晴れの確率
m=60 //日数
t=0 //タクシーを使った回数
for (i=1;i<=m;i++){
p=Math.random();
if(p<a){
document.write(i,p,"晴れ",x,y,"");
}
else if(p<a+b){
document.write(i,p,"雨",x,y,"");
}
else if(p<a+b+c){
if(x>=1){
x--;
y++;
}
document.write(i,p,"雨→晴",x,y,"");
}
else{
if(y>=1){
x++;
y--;
document.write(i,p,"晴→雨",x,y,"");
}
else{
t++;
document.write(i,p,"晴→雨",x,y,"タクシー");
}
}
}
document.write("タクシーを使った回数=",t);
//-->
</Script>
|
戻る