作者xu3jp68 (信箱爆炸..XD)
看板Prob_Solve
标题[问题] 机率问题
时间Fri Sep 28 11:49:26 2007
※ [本文转录自 C_and_CPP 看板]
作者: xu3jp68 (信箱爆炸..XD) 看板: C_and_CPP
标题: [问题] 机率问题
时间: Thu Sep 27 16:02:22 2007
这问题是这样,(i,j)
i:我手上有几颗苹果
j:客人要买几颗苹果
而我能做的事情就是,决定我每一期要订购几颗苹果以满足顾客的需求,
_____ (0,0)
/ _____ (0,1)
(0,0)/~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
\ _____ (1,0)
\ _____ (1,1)
所以上图表示的是说限在我手上没有苹果,这一期也没人来买,
假设我下一期决定要订购0颗苹果则我有p1的机率走到(0,0),有p2的机率走到(0,1)
(即图的上半部)p1+p2=1
假设我下一期决定要订购1颗苹果则我有p1的机率走到(1,0),有p2的机率走到(1,1)
(即图的下半部)p1+p2=1
也就是说我要订购苹果的数量是我能掌握的,可是顾客要买多少是有机率性的
我希望能够知道每一期我要买几颗苹果才能够赚最多的钱(卖苹果可以赚钱=.=)
而後面那四个点(0,0)(0,1)(1,0)(1,1)能赚的钱都已经先算出。
分别为y[0][0],y[0][1],y[1][0],y[1][1]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
for(i=0;i<=1;i++) //i目前手中的苹果数
{
for(m=0;m<=2;m++) //m购买的苹果数
{
for(j=0;j<=1;j++) //下一期顾客的需求
{
sum=0;
temp=-10000000;
sum+=probability(j)*y[i][j]; //假设需求机率函数已写好,把所有需求情况加总
if(temp<=sum)
{temp=sum,a_m=m;} //a_m为购买苹果数量的变数
v[i][j]=temp;
cout<<v[i][j];
cout<<a_m;
} } }
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
照理说他应该显示
(0,0) 最佳购买数量a_m
(0,1) 最佳购买数量a_m
(1,0) 最佳购买数量a_m
(1,1) 最佳购买数量a_m
显示种类应该是i*j种(因为我只想知道最佳购买数量)
机率的部分一定要用回圈写,因为到最後会有很多可能目前只是缩小来看。
不过回圈这样写就是有i*j*m,所以请问逻辑上有什麽错误呢?感谢。
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.55.190
1F:推 PRAM:这种问题似乎与程式语言无关, 靠自己想吧 09/27 17:19
2F:推 sunneo:转去Prob_Solve问看看吧 09/27 20:53
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.114.55.190
3F:推 ephesians:你为什麽要写if(temp<=sum) 09/28 12:01
4F:推 xu3jp68:要找所有sum当中的最大,一个m对应一个sum 09/28 13:09
5F:推 ephesians:不过最内层每次都把sum跟temp设为预设值... 09/30 19:53