游戏开发论坛

 找回密码
 立即注册
搜索
楼主: lei7814

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

[复制链接]

0

主题

156

帖子

156

积分

注册会员

Rank: 2

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

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

模拟了一下
10000次的结果大概是……
掷骰6次相当于27.7,接近于28点购点法。。

在部分DM的设定里,掷点可以多掷第7次,以替换前6次中的任一项。
这样的话,大概32.15,略好于32点购点法。

0

主题

156

帖子

156

积分

注册会员

Rank: 2

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

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

另外,统计了一下购点小于20的概率在15%-16%之间,购点0的几率可能在百万分之一左右,测试了400万次,出现2次购点0。

74

主题

1872

帖子

4238

积分

版主

Rank: 7Rank: 7Rank: 7

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

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

~ [em7]

26

主题

1137

帖子

1164

积分

金牌会员

Rank: 6Rank: 6

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

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

我是来神游的。脱离需求的公式,都是假的。DND较早的规则,是丢投资决定6属性的,后来发现这种做法及其蛋疼。最新一版4.0直接取消了这个东西,属性固定了。

购点更适用于制作游戏,它具有容易操作、理解清楚、省略操作步骤、改善体验等多项优点。

附:神游加减模糊计算法:

3 * 4 * 6 - 8 * 6 = 24

24 - 1 * 2 * 6 = 12

12 / 2 = 6

12 + 2 + 1 = 15

15 <  4 * 4

result = 24 + 2 * 6 = 36。

3

主题

453

帖子

460

积分

中级会员

Rank: 3Rank: 3

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

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

差距那么大~
难到俺写的有误...
再去检查检查

32

主题

1519

帖子

2334

积分

金牌会员

Rank: 6Rank: 6

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

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

没学过概率学,从一个dnd玩家角度来看,通常认为6面骰的中间值是3、4.所谓中间值就是当玩家需要投很多次骰时为了节约时间而设定的。

所以可以简单的认为每次投到的都是2个3、2个4,去掉最低3,于是6项属性均为11.从8买的话6项只需要18点。


这也是后来大家更喜欢28点购买法的原因,恩。。。

0

主题

156

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2009-12-19 01:21:00 | 显示全部楼层

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

bal: Re:一个概率题,大家来算下……
没学过概率学,从一个dnd玩家角度来看,通常认为6面骰的中间值是3、4.所谓中间值就是当玩家需要投很多次骰时为了节约时间而设定的。

所以可以简单的认为每次投到的都是2个3、2个4,去掉最低3,于是6项属性均为11.从8买的话6项只需要18点。


这也是后来大家更喜欢28点购买法的原因,恩。。。
lei7814: Re:一个概率题,大家来算下……

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

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



如果不去掉最低值,这两种方法是对的。。
但是现在是4次掷骰选较大的三个之和。。

4次6面骰至少出现一次特定数字的几率为1-(5/6)^4,大约52%
这样计算下去,投掷4次的最低数为1几率有52%
至少出现一次2的几率有(1-52%)[1-(4/5)^4],大约28.3%
3的几率13.5%,4的几率5.1%,5的几率1.2%,6的几率0.1%
当然,只有4次全6才会排除最低数6,实际几率为(1/6)^4约0.007%,上面的0.1%为计算过程中精度不够逐步扩大的误差所致。

以上,6的几率过低,在计算过程中不需要考虑。
以投掷300个组合1200次为例,总值以4200计,需要排除300个最低数,其中约有157个1,85个2,40个3,15个4,3个5,为522。
排除后总值3678,300个组合平均值为12.26。6项总计约25.5个购点。。
但是由于高点数需要更多的购点,而低点数并不会返还购点。所以实际的平均需要购点数要超过这个值。

0

主题

108

帖子

114

积分

注册会员

Rank: 2

积分
114
发表于 2009-12-21 17:23:00 | 显示全部楼层

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

我们都用32BUY点,哦哈哈!

32

主题

1519

帖子

2334

积分

金牌会员

Rank: 6Rank: 6

积分
2334
发表于 2009-12-21 17:29:00 | 显示全部楼层

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

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

我们都用32BUY点,哦哈哈!



32好无聊。。。。封神演义么 [em11]

0

主题

156

帖子

156

积分

注册会员

Rank: 2

积分
156
发表于 2009-12-21 19:44:00 | 显示全部楼层

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

#include <iostream>
using namespace std;
int he (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 main (void)
{
        int a=18,c=0;
        int b[4];
        cout<<"请输入要统计的值"<<endl;
        cin>>a;
                for(b[0]=1,b[1]=1,b[2]=1,b[3]=0;b[0]+b[1]+b[2]+b[3]<24;)
                {
                        if(b[3]<6)
                        {
                                b[3]=b[3]+1;
                        }
                        else if(b[2]<6)
                        {
                                b[2]=b[2]+1;
                                b[3]=1;
                        }
                        else if(b[1]<6)
                        {
                                b[1]=b[1]+1;
                                b[3]=1;
                                b[2]=1;
                        }
                        else
                        {
                                b[0]=b[0]+1;
                                b[3]=1;
                                b[2]=1;
                                b[1]=1;
                        }
                        if(a==he(b[0],b[1],b[2],b[3]))
                        {
                                cout<<b[0]<<b[1]<<b[2]<<b[3]<<endl;
                                c=c+1;
                        }
                        else
                                ;
                }
                cout<<a<<"共出现"<<c<<"次"<<endl;
        return 0;
}
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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