------ 文章開始 ------

#include <cstdarg>
#include <iostream>
#define  d(i) (i+2)
using namespace std;
int main (void)
{
    double d0[11],a=36;
    int i,j,k;
    double d1[2][11]={0},d2[11][11],ans[11]={0},t,tt[2]={0};
    for(i=0;i<11;i++)
    {
        if(i<6)d0[i]=(i+1)/a;//小於六給予機率值 
        else d0[i]=(11-i)/a;//大於六給予機率值 
    }
    for(i=0;i<11;i++)
    {
        d1[0][i]=d0[i];
        for(j=0;j<11;j++)//給予矩陣機率值。並將爆掉的情況給予機率0 
        {
            d2[i][j]=d0[i];
            if (((d(i)<=7)&&(d(i)-d(j)>3))||((d(i)>7)&&(d(j)-d(i)>3))) d2[i][j]=0;
        }
    }
    for(k=0;k<25;k++)//25次的矩陣迴圈 
    {
        for(i=0;i<11;i++)//單次矩陣運算 
        for(j=0;j<11;j++)
        {
            d1[1][i]+=(d1[0][j]*d2[i][j]);
            if (((d(i)<=7)&&(d(i)-d(j)>1))||((d(i)>7)&&(d(j)-d(i)>1))) tt[0]+=(d1[0][j]*d2[i][j]);
            //將用到三花的機率累加起來 
            if (((d(i)<=7)&&(d(i)-d(j)>0))||((d(i)>7)&&(d(j)-d(i)>0))) tt[1]+=(d1[0][j]*d2[i][j]);
            //將用到三花和一花的機率累加起來 
        }
        for(i=0;i<11;i++)//將矩陣之結果設為起始值,並將結果歸零 
        {
            d1[0][i]=d1[1][i];
            d1[1][i]=0;
        }
    }
    for(i=0,t=0;i<11;i++)//輸出停留結果(驗算用) 
    {
        cout<<d1[0][i]<<endl;
        t+=d1[0][i];
    }
    cout<<endl<<t<<endl;//輸出機率值 
    cout<<endl<<tt[0]<<endl;//輸出三花使用數 
    cout<<endl<<tt[1]-tt[0]<<endl;//輸出一花使用數 
    cout<<endl<<200*(tt[1]-tt[0])+600*tt[0]<<endl;//輸出單次期望金額 
    system("pause");
    return 0;
}
------ 文章結尾 ------

[複製網址] [開新視窗] [檢舉短網址] [QR條碼]

服務條款 - 加入會員(免費) - 回報問題網址 - 聯絡偶們 -

© 2024 PPT.cc