游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5880|回复: 20

[讨论] 一个概率题,大家来算下……

[复制链接]

17

主题

211

帖子

631

积分

高级会员

Rank: 4

积分
631
发表于 2009-12-18 17:31:00 | 显示全部楼层 |阅读模式
在D&D规则中,有2种给人物分配属性点的方式。一种是购点,就是用固定数目的点数去添加给人物的6个属性。每个属性从8开始,8~14每点需要1个购点,14~16每点需要2个购点,16~18每点需要3个购点。单属性最高18.也就是说8加到14需要6个购点,8到16需要10个,8到18需要16个。
另一种是投掷骰子,投掷4个6面骰子,去掉最小的一个,把剩余的3个相加。重复6次。6个结果作为6个属性。

提问:投掷骰子的方法的期望值相对于购点的方法来说需要多少购点。

42

主题

574

帖子

0

积分

禁止发言

积分
0
发表于 2009-12-18 17:35:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

17

主题

211

帖子

631

积分

高级会员

Rank: 4

积分
631
 楼主| 发表于 2009-12-18 17:41:00 | 显示全部楼层

Re:一个概率题,大家来算下……

比如购点购出16 14 14 13 13 8,消耗了32个购点点数。

骰点骰出17 14 13 13 12 10 折算成购点是35个购点点数。

如果骰点低于8,不计算负点,值有效。

3

主题

453

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
发表于 2009-12-18 17:46:00 | 显示全部楼层

Re:一个概率题,大家来算下……

如果4个骰子都丢出1,去掉一个总和?剩3,似乎不够初始点数8,这个3算需要多少购点?负数吗?

3

主题

453

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
发表于 2009-12-18 17:54:00 | 显示全部楼层

Re:一个概率题,大家来算下……

clear
n=10000;
m=6;
dsl=[1,2,3,4,5,6,8,10,13,16];
for i=1:n
    for j=1:m
       sjs=fix(6*rand(1,4))+1;
       zh=sum(sjs)-min(sjs);
       if zh<9
           ds=0;
       else
           ds(j)=dsl(zh-8);
       end
   end
   zds(i)=sum(ds);
end
sum(zds)/n


ans =

   22.4861

>>
ans =

   22.7642

>>
ans =

   22.4309


执行3次结果
结论大概是22左右

PS:大概有10%~11%几率出现购点0的情况
用第二种方式玩家挺悲剧的~

17

主题

211

帖子

631

积分

高级会员

Rank: 4

积分
631
 楼主| 发表于 2009-12-18 18:23:00 | 显示全部楼层

Re:一个概率题,大家来算下……

应该不会低于30,123456去掉中间34,去掉最小的1,2+5+6=13,*6就是30.但是因为14以上的点数价值增加,所以应该是30以上。

骰点不算负值,小于8的那一个属性视为0购点。

3

主题

453

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
发表于 2009-12-18 19:13:00 | 显示全部楼层

Re:一个概率题,大家来算下……

123456去掉中间34
这是啥意思?
题目?]提到这玩意阿

17

主题

211

帖子

631

积分

高级会员

Rank: 4

积分
631
 楼主| 发表于 2009-12-18 19:19:00 | 显示全部楼层

Re:一个概率题,大家来算下……

6面骰有6种可能,每种出现一次自然是不改变期望值的。去掉中间34也不改变。所以丢4次,出现1256是理想情况。

我数学不好,只是一个想法,不一定对。

3

主题

453

帖子

460

积分

中级会员

Rank: 3Rank: 3

积分
460
发表于 2009-12-18 20:07:00 | 显示全部楼层

Re:一个概率题,大家来算下……

......
你这想法.....
你太乐观了~
你去网上找个MATLAB安装一下,把我上面发的那段小程序复制去做成个M文件~
然后查看一下zds的值~
你会??全0是很多的~
也就是?连续6次4?3以后点数都不够8的情况是很多的~
10%左右

0

主题

156

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2009-12-18 20:20:00 | 显示全部楼层

Re:一个概率题,大家来算下……

程序新手,写的乱七八糟多见谅……

#include <iostream>
#include <ctime>
#include <cmath>
using namespace std;

int he1 (int a,int b,int c,int d)
{
        int x;
        if(a>b)
                x=b;
        else
                x=a;
        if(x>c)
                x=c;
        else if(x>d)

                x=d;
        else
                x=x;
        x=a+b+c+d-x;
return x;
}
int he2 (int a,int b,int c,int d,int e,int f,int g)
{
        int x;
        if(a>b)
                x=b;
        else
                x=a;
        if(x>c)
                x=c;
        else if(x>d)

                x=d;
        else if(x>e)
                x=e;
        else if(x>f)
                x=f;
        else if(x>g)
                x=g;
        else
                x=x;
        x=a+b+c+d+e+f+g-x;
return x;
}
int main (void)
{
        srand(unsigned(time(NULL)));
        int sum,a1,a2,a3,a4,i,j,h,x,y,z1,z2;
        sum=y=0;
        int b[7]={0,0,0,0,0,0,0};
        int c[16]={0,0,0,0,0,0,1,2,3,4,5,6,8,10,13,16};
        cout<<"请输入测试次数"<<endl;
        cin>>z1;
        cout<<"请输入要统计的购点数值,如要统计20以下不包含20,就输入20"<<endl;
        cin>>z2;
        for(h=1;h<=z1;h++)
        {
                j=0;
                for(i=1;i<=6;i++)
                {
                       
                        a1=1+rand() % 6;
                        a2=1+rand() % 6;
                        a3=1+rand() % 6;
                        a4=1+rand() % 6;
                        x=he1(a1,a2,a3,a4);
                        x=c[x-3];
                        b[j]=x;
                        j++;                       
                }
                x=he2(b[1],b[2],b[3],b[4],b[5],b[6],b[0]);
                sum=sum+x;
                if(x<z2)
                        y++;
                else
                        y=y;
        }
        cout<<"测试"<<h-1<<"次"<<endl;
        cout<<"共消耗购点"<<sum<<endl;
        cout<<z2<<"点以下的有"<<y<<"次"<<endl;
return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-14 18:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表