泊松分酒問題演算法
『壹』 關於泊松過程的問題
首先你要明白參數為λ的泊松過程的相鄰時間時間間隔是獨立同分布於期望為1/λ的指數分布的這個證明很多書上都有主要是用泊松分布的平移不變性然後根據指數分布的遺忘性 P{S>s1+s2|S>S1}=P{S>s2},帶入指數分布的分布函數即可
『貳』 泊松是幹嘛的
法國數學家泊松少年時被一道數學題深深地吸引住了,從此便迷上了數學。這道題是:某人有8公升酒,想把一半贈給別人,但沒有4公升的容器,只有一個3公升和一個5公升的容器。利用這兩個容器,怎樣才能用最少的次數把8公升酒分成相等的兩份?
想:利用兩次小容器盛酒比大容器多1公升 ,和本身盛3公升的關系,可以湊出4公升的酒。
解:(1)將8 公升酒倒入小容器,倒滿後,把小容器的酒全部倒入盛5公升的容器中。
(2)再倒滿小容器,將小容器的酒再向5公升容器倒,使它裝滿酒,此時小容器內只剩1公升酒。
(3)將5公升容器中的酒全部倒回盛8公升的酒瓶中,接著把小容器中的1公升酒倒入這時的空容器中。
(4)再把酒瓶中的酒倒滿小容器,酒瓶中剩下的酒整好是8公升的一半。
『叄』 泊松問題
我的方法:(8升)倒(3升),(3升)倒(5升),
(8升)又倒(3升),(3升)再倒(5升),
倒不完,還剩1升,把(5升)倒回(8升)。
此時(8升)只有7升的量,把(3升)中的1升倒(5升)
最後往(5升)里倒3升
寫完我後悔了,給不動腦子的人作了嫁衣
『肆』 餐廳分酒的容器
12斤到8斤,8斤到5斤餘3斤,5斤到12斤空,3斤到5斤剩2斤空間 12斤到8斤,8斤到5斤去2斤剩6斤
『伍』 泊松趣味數學題
問題分析與演算法設計
將12品脫酒 8品脫和5品脫的空瓶平分,可以抽象為解不定方程:
8x-5y=6
其意義是:從12品脫的瓶中向8品脫的瓶中倒x次,並且將5品脫瓶中的酒向12品脫的瓶中倒y次,最後在12品脫的瓶中剩餘6品脫的酒。
用a,b,c代表12品脫、8品脫和5品脫的瓶子,求出不定方程的整數解,按照不定方程的意義則倒法為:
a -> b -> c ->a
x y
倒酒的規則如下:
1) 按a -> b -> c ->a的順序;
2) b倒空後才能從a中取
3) c裝滿後才能向a中倒
按以上規則可以編寫出程序如下:
*程序說明與注釋
#include<stdio.h>
void getti(int a,int y,int z);
int i; /*最後需要分出的重量*/
int main()
{
int a,y,z;
printf("input Full a,Empty b,c,Get i:"); /*a 滿瓶的容量 y:第一個空瓶的容量 z:第二個空瓶的容量*/
scanf("%d%d%d%d",&a,&y,&z,&i);
getti(a,y,z); /*按a -> y -> z -> a的操作步驟*/
getti(a,z,y); /*按a -> z -> y -> a的步驟*/
}
void getti(int a,int y,int z) /*a:滿瓶的容量 y:第一個空瓶的容量 z:第二個空瓶的容量*/
{
int b=0,c=0; /* b:第一瓶實際的重量 c:第二瓶實際的重量*/
printf(" a%d b%d c%d\n %4d%4d%4d\n",a,y,z,a,b,c);
while(a!=i||b!=i&&c!=i) /*當滿瓶!=i或另兩瓶都!=i*/
{
if(!b)
{ a-=y; b=y;} /*如果第一瓶為空,則將滿瓶倒入第一瓶中*/
else if(c==z)
{ a+=z; c=0;} /*如果第二瓶滿,則將第二瓶倒入滿瓶中*/
else if(b>z-c) /*如果第一瓶的重量>第二瓶的剩餘空間*/
{ b-=(z-c);c=z;} /*則將裝滿第二瓶,第一瓶中保留剩餘部分*/
else{ c+=b; b=0;} /*否則,將第一瓶全部倒入第二瓶中*/
printf(" %4d %4d %4d\n",a,b,c);
『陸』 泊松定理的問題
1. 設X為包裝中的次品數, 滿足二項分布. P(X=k) = C(100,k)p^k (1-p)^(100-k), 其中p=0.001
P(退款)= 1 - P(X=0) - P(X=1) = 1 - (1-p)^100 - 100p(1-p)^99 = 0.0046=0.46%
有於100為大數, 故也可以用二項分布的泊松近似:
P(X=k) 約等於 exp(-100p) * (100p)^k / k!
P(X=0)=exp(-0.1)=0.9048
P(X=1)=exp(-0.1)*(0.1)=0.0905
P(退款)約等於 1-0.9048-0.0905 約等於 0.47%
2. 泊松分布為 P(月銷售量=k) = exp(-5) * 5^k / k!
設庫存為K, 則要求P(月銷售量<=K) >=0.999
即 exp(-5) * (5^0/0! + 5^1/1! + ... + 5^K/K!) >=0.999
計算得到當K=12時左邊等於0.997981, 不足, K=13時等於0.999302, 有餘
因此進貨時庫存量>=13即可.
『柒』 概率論 泊松定理基礎問題,累加公式
已知:設故障台數x,配備n人
求:發生故障但是不能及時維修的概率==
發生故障時,沒有維修工人;
當第n+1
個故障發生時,沒有工人可以維修;
也就是
故障台數x減
工人數n
>=0;的概率,
p{x>=n}<0.01
泊松分布是離散累加的,p{x>=n}=1-p{x
0.99
(為了計算查表方便,因為,p{x=i}是已知的)
p(x<=8)=0.996197
,
p(x<=7)=0.988095
(excel
算的)
『捌』 泊松分酒問題3,6,10,12升的瓶子怎麼把12升酒三等分
3斤瓶是空的用便捷的方法分出5斤酒是吧,3斤瓶剩2斤,10斤瓶剩1斤。分次三次用3斤裝入7斤瓶。然後7斤瓶倒回10斤瓶,7斤瓶就是5斤了。3斤瓶倒入7斤瓶,7斤瓶剩2斤,這樣,10斤瓶有8斤,再裝滿個3斤瓶倒入7斤瓶。這樣
『玖』 C語言出錯泊松分酒
錯的有些離譜了。。。我不知道是不是編譯器問題。。。
#include<stdio.h>
inti,n;
intprobo(inta,intbv,intcv){
intn=0,b=0,c=0;
while(!(a==i||b==i||c==i)){
if(!b)
if(a<bv){n=-1;break;}
else{a-=bv,b=bv;}
elseif(c==cv){a+=cv;c=0;}
elseif(b+cv==i){a-=cv-c;c=cv;}
elseif(b>cv-c){b-=(cv-c);c=cv;}
else{c+=b;b=0;}
n++;
}
return(n);
}
voidpractice(inta,intbv,intcv){
intb=0,c=0,x=0;
printf("平分酒的分法: ");
printf("酒瓶%d空杯%d空杯%d ",a,bv,cv);
printf("%6d%6d%6d ",a,b,c);
while(!(a==i||b==i||c==i)){
if(!b){a-=bv;b=bv;}
elseif(c==cv){a+=cv;c=0;}
elseif(b+cv==i){a-=cv-c;c=cv;}
elseif(b>cv-c){b-=(cv-c);c=cv;}
else{c+=b;b=0;}
x++;
printf("%3d:%6d%6d%6d ",x,a,b,c);
}
printf("平分酒共分倒%d次. ",n);
}
intmain()
{
inta,bv,cv,m1,m2;
printf(" 請輸入酒總量(偶數):");scanf("%d",&a);
printf("兩空杯容量bv,cv分別為:");
scanf("%d,%d",&bv,&cv);
i=a/2;
if(bv+cv<i)
{printf("空標容量太小,無法平分! ");return0;}
m1=probo(a,bv,cv);m2=probo(a,cv,bv);
if(m1<0&&m2<0)
printf("無法平分!");
if(m1>0&&(m2<0||m1<m2))
{n=m1;practice(a,bv,cv);}
if(m2>0&&(m1<0||m2<m1))
{n=m2;practice(a,cv,bv);}
}
你發的代碼太亂了,一點條理性也沒有。首先,主函數必須定義為int型,在部分編譯器中不定義或void型也不會報錯,但int型不管怎麼編譯都不會錯。
其次,調用的函數必須在調用之前申明。
還有就是小寫字母不要打成大寫字母。
最後,注意縮進,不然看起來太亂。