wayne 发表于 2012-1-14 19:28:33

19# KeyTo9_Fans
漂亮,状态转移矩阵比递推公式的表达更简洁。

zYr 发表于 2012-1-14 20:05:11

20# KeyTo9_Fans


原来是这么回事 学习了

zYr 发表于 2012-1-16 15:28:06

我改进了一下代码 把srand()函数放在外面 随机数质量高多了#include "stdafx.h"
#include "iostream"
#include "stdlib.h"
#include "time.h"
using namespace std;

double n=1,k=0;        //n为实验总次数 k为实验成功(即1000次内升到九级)的次数
void main()
{
        srand( (unsigned)time( NULL ) );
        int shiyan();
        double p;                        //p为概率
C:
        n++;
        int b=shiyan();       
        if (b)
        {
                k++;
        }
        p=k/n;
        cout<<p<<endl;
        goto C;
}

int shiyan()
{
        int l=1;        //l为屠龙刀等级
        int i=1;        //升级次数
        int roll();
        while(i<=1000)        //执行1000次升级操作
        {
                int r=roll();
                if (r<=3)                //30%
                {
                        l++;
                }
                else                        //70%
                {
                        if(l==1)
                        {
                                l=1;
                        }
                        else
                        {
                                l--;
                        }
                }
                if (l==9)
                {
                        break;
                }
                else
                {
                        i++;
                }
        }
        if (l==9)        //实验成功
        {
                return 1;
        }
        else                //实验失败
        {
                return 0;
        }
}

int roll()        //随机一个1到10的整数
{
        int num = 1 + rand() % 10;
        return num;
}

rayfekeeper 发表于 2012-5-4 15:27:44

游戏中的数学很强悍啊。RPG游戏中用得很广啊。

wayne 发表于 2012-5-6 14:14:10

24# rayfekeeper
赫赫,一看就知道阁下是游戏领域的专家
页: 1 2 [3]
查看完整版本: 屠龙刀的概率升级问题