2004-10-29 22:12
青木风亮
小弟编了一个小程序可供大家试验此题 输入n值输出f(n)为0,1,2,3,4,5的概率
默认f(0,0)=f(0,1)=...=f(0,5)=1/6
[color=red]现已做出修改[/color] 目前的情况是:
1.没有输入判错
2.n值请在0..1500的范围内
3.计算结果为实数 方便大家观察随着n值改变计算结果的变化
4.一次可以算多个 结束请输入负数 比如-1
凑合用吧
2004-11-1 01:33
重阳
仔细一看,原来是英杰传的天气问题
令N足够大时F(N)取0~5的概率分别是a0~a5
a0+a1+a2+a3+a4+a5=1
a0= 1/6 a4+1/6 a5
a1= 5/6a0+1/6a1+2/6 a2
a2= 4/6a1+1/6 a2+3/6 a3
a3= 3/6 a2+1/6 a3+4/6 a4
a4= 2/6 a3+1/6 a4+5/6 a5
a5= 1/6a0+1/6a1
解得
a0=1/32
a1=5/32
a2=5/16
a3=5/16
a4=5/32
a5=1/32
由于a0~a2表示的是晴天,a3是阴天,a4~a5是雨天,所以晴天的概率是1/2,阴天的概率5/16,雨天的概率是3/16。
2004-11-1 09:21
周瑜
重阳正解,一下就看出了题目出处,连列式都和我想的一样。
当时看了龙吟的天气算法,就想着手计算一下三种天气的概率,因为偷懒,就发到射虎园来了。
雨天概率只有五分之一不到,并非是由6个取值占其中2个估计出的三分之一。
楼下用的是递推的方法。当n足够大时,g[i,j]=g[i-1,j],这样就变成一个方程组了,而不是需要永远算下去的。
2004-11-1 09:56
青木风亮
case j of
0:g[i,j]:=(g[i-1,0]+g[i-1,1])/6;
1:g[i,j]:=g[i-1,0]*5/6+g[i-1,1]/6+g[i-1,2]/3;
2:g[i,j]:=g[i-1,1]*2/3+g[i-1,2]/6+g[i-1,3]/2;
3:g[i,j]:=g[i-1,2]/2+g[i-1,3]/6+g[i-1,4]*2/3;
4:g[i,j]:=g[i-1,3]/3+g[i-1,4]/6+g[i-1,5]*5/6;
5:g[i,j]:=(g[i-1,4]+g[i-1,5])/6;
end;
希望战棋版高人推出《曹操传》版 期待中。。。
楼上说得有道理 不过只以这道题的叙述来看 这个方程组确实需要递推得出啊
而题目应该给出当n足够大时 g[i,j]存在固定的极限
否则还需要证明 才能引用g[i,j]=g[i-1,j]吧