跑跑資訊站

[活動] 回答數學題目,幫你開通VIP~(已結束)

[複製鏈接]
  • 瀏覽 7577
  • 回覆 30
  • 給心 0
樓主
跑跑小流星 手機綁定 | 2015-7-11 19:25:42 | 顯示全部樓層
沒有輸入的自定義頭銜...


並附上C++的測試程式執行結果:

猜拳次數 = 100000000,
第一關勝利數 = 49997199, 使用硬幣數 = 74991857,
第一關失敗數 = 50002801, 使用硬幣數 = 75000158,
第二關失敗數 = 25000910, 使用硬幣數 = 74999844,
勝場數 = 24996289, 勝場使用硬幣數 = 74981395,
敗場總數 = 75003711
使用硬幣總數 = 224981397
硬幣總數/勝場數 = 9.000592



程式原始碼:

#include <stdlib.h>
#include <time.h>

#define ROCK    0
#define PAPER    1
#define SCISSOR    2

int main(int argc, char* argv[])
{
    int numPlay, result, finishFlag, coin;
    int numWin = 0, numLose = 0, totalCoin = 0,
        winCoin = 0, loseCoin1 = 0, loseCoin2 = 0,
        numLose1 = 0, numLose2 = 0, numWin1 = 0, winCoin1 = 0;

    srand(time(NULL));

    for (numPlay = 0; numPlay < 100000000; ++numPlay) {
        finishFlag = coin = 0;
        do {
            ++coin; result = rand()%3;
            if (result == ROCK) {
                ++numWin1; winCoin1 += coin;
                do {
                    ++coin; result = rand()%3;
                    if (result == ROCK) {
                        ++numWin;
                        winCoin += coin;
                        finishFlag = 1;
                    }
                    else if (result == SCISSOR)    {
                        ++numLose;
                        loseCoin2 += coin;
                        ++numLose2;
                        finishFlag = 1;
                    }
                } while (finishFlag == 0);
            }
            else if (result == SCISSOR) {
                ++numLose;
                finishFlag = 1;
                loseCoin1 += coin;
                ++numLose1;
            }
        } while (finishFlag == 0);
        totalCoin += coin;
    }

    printf("猜拳次數 = %d,\n第一關勝利數 = %d, 使用硬幣數 = %d,\n第一關失敗數 = %d, 使用硬幣數 = %d,\n第二關失敗數 = %d, 使用硬幣數 = %d,\n勝場數 = %d, 勝場使用硬幣數 = %d,\n敗場總數 = %d\n使用硬幣總數 = %d\n硬幣總數/勝場數 = %f\n",
            numPlay, numWin1, winCoin1, numLose1, loseCoin1, numLose2, loseCoin2, numWin, winCoin, numLose, totalCoin, (float)totalCoin / (float)numWin);
    return 0;
}



點評

很詳細喔,我也有算到你梯形連加那裏,but 後來麻煩索性不寫了,還有用程式碼犯規啦!!!  發表於 2015-7-21 23:03
星期天前會發獎勵  發表於 2015-7-17 20:38
跑跑資訊站 KartInfo - 台灣跑跑卡丁車資訊情報第一站!
回覆

使用道具 舉報

您需要登入後才可以發帖 登入 | 立即加入

本版積分規則

快速回復 返回頂部 返回列表