游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: 不是平凡人

[讨论] 普及一个知识,关于几率

[复制链接]

80

主题

752

帖子

823

积分

高级会员

Rank: 4

积分
823
 楼主| 发表于 2006-7-25 21:24:00 | 显示全部楼层

Re:普及一个知识,关于几率

啦啦啦……

我以前了解的。掉宝率什么的都是百万级的,也就是打百万次才掉落多少的。
所以连续掉落好几次都正常,毕竟也是世界掉落嘛。

0

主题

145

帖子

150

积分

注册会员

Rank: 2

积分
150
发表于 2006-7-25 21:38:00 | 显示全部楼层

Re:普及一个知识,关于几率

太简单了。概率论的很多原理都没讲。

44

主题

325

帖子

412

积分

中级会员

Rank: 3Rank: 3

积分
412
QQ
发表于 2006-7-26 11:24:00 | 显示全部楼层

Re:普及一个知识,关于几率

其实只是一个一次性把所有骰子都掷完或是每次判断都掷一次骰子的问题
这两种本来程序都能做到,看策划怎么要求而已

前者让我想起最近的一个游戏——泰坦之旅,其在生成地图的时候已经生成一个几率,然后把几率数值中的比例的稀有装备分派到该地图的怪物手上,这就是非凡提到的这种几率的实现;

而另一种,很多游戏都是这样了,例如D&D的掷骰子,每次都是重掷的,1/10的几率既有可能10次都中了,也有可能10次都没中,这个程序当然也能实现

再深入一点去解释,实际上只是在于Random这个取随机数的函数是在循环内实现还是循环外实现而已

38

主题

904

帖子

944

积分

高级会员

Rank: 4

积分
944
发表于 2006-7-26 11:28:00 | 显示全部楼层

Re:普及一个知识,关于几率

这种知识也普及?搞笑吧?
最搞笑的是自己没有把话说得清楚明白。。。

38

主题

904

帖子

944

积分

高级会员

Rank: 4

积分
944
发表于 2006-7-26 11:41:00 | 显示全部楼层

Re:普及一个知识,关于几率

为了防止别人说我瞎捣乱,我决定稍稍说几句。
随机分两种:
楼主的意思,其实应当这样来看。(请注意,以下的描述是根据楼主的表述来扩充的,不代表个人观点)
一种是堆栈式的,例如十分之一的几率,就是建一个容量为十的数列,其中有一个达到要求,这个达到要求的数必然会存在于这这个数列中,只不过排列的位置不同。
这种随机应用在游戏中的不多,不过也是有的,例如打十个BOSS,必然有一个BOSS带某种道具,这个道具的携带就可能是用这样的数列来完成,由于数列是一开始生成的,所以你打第一个BOSS出了道具,则后面九个BOSS都没有。
(以下为另一种)
另一种则是函数式的,例如十分之一的几率,指的是掷一个十面骰,或者应用一个随机函数,值得注意的是,随机函数有好几种,呵呵。
这种方式应用在游戏中的较多,例如许多游戏为了简化掉宝原则,就会用这种方式,在怪物挂掉的时候,随机一下,当随机值满足要求,则掉宝,不满足要求,就不掉宝。这样的方式可以很完整地解释为什么RP爆发时可以连掉两块极品宝石或道具。

个人的疑问有两点:
1、不论是哪种随机,都跟现实随机没有任何瓜葛,因为现实并不是随机的!
2、楼主要表达的意思,看起来似乎足够,但实际上却存在太多疑问,推荐下次想要说明一个事情的时候,特别在用上“普及一个知识”这种标题的时候,能够稍稍对得起标题,谢谢!

80

主题

752

帖子

823

积分

高级会员

Rank: 4

积分
823
 楼主| 发表于 2006-7-26 11:47:00 | 显示全部楼层

Re:普及一个知识,关于几率

嘿嘿,标题改了。感谢大家给我普及了这个知识,以至于不会让我犯下弥天大祸啊

其实对于策划来说,还真的要了解一些底层的程序知识,不懂变成不要紧,但基础知识要了解。
原先我所了解的关于几率的这个说法也是原来公司的程序跟我说的,我想可能是他们用的机制不一样吧,但我却当做了真理(可能是他们说的太肯定了……)

感谢大家!!

19

主题

820

帖子

894

积分

高级会员

Rank: 4

积分
894
发表于 2006-7-26 12:15:00 | 显示全部楼层

Re:普及一个知识,关于几率

真随机和假随机而已,程序都能做的。区别在于真随机是100次攻击里面你可能次次都爆击,或者次次都loot到逐风剑(概率嘛……),或者你是上帝的敌人,那么你次次都MISS而且LOOT过的怪物尸体附近连草都长不出来……而假随机是假如你去了MC100次,即使你再RP稀烂,也铁定要出一把逐风。当然,这个“你”指所有去MC的玩家。

真随机的原理很简单,每次取值的时候,都是在一个完整的数值区间内随机抽取一个数字,比如D&D里的dice规则;而假随机是每次取值的时候,用完整的数值区间先减去上一次/几次的值,再在剩下的区间内取,如某场景内有20只狼,一共有5块狼肉,当你打出一块后,再loot的时候几率就是4/19而不是5/20了。

也有两者结合的例子。还以WOW为例,圣骑士的技能叫什么圣印的来着,规则就是“近战有一定几率附加伤害/击晕对手,每分钟最多5次”。这里肯定是有一个变量值,暂时叫它cc,当启动这个圣印时,赋予这个CC值为5,并开始计时,如果出现特效则在该CC值内减去1,每分钟重置一次。但是这个CC发动又是通过真随机的,每次ROLL这个CC都是1~100,所以,尽管你最多1分钟发动5次,但是也可能1次也发不出。

这两种做法各有各的用途吧。期待有高人来发言。

41

主题

2104

帖子

2109

积分

金牌会员

Rank: 6Rank: 6

积分
2109
发表于 2006-7-26 14:40:00 | 显示全部楼层

Re:普及一个知识,关于几率

orz..不要再yy了...
Random()被称为伪随机是因为每次运行程序的时候Random产生的序列都是一样的
但是在一次运行当中产生的随机数和真随机没有任何区别

对于单机游戏来说这种random可能让几次游戏的随机结果都一样

但是网络游戏根本不存在这个问题

因为你不确定到底是谁取走了Random池中最前面的那个数,也不确定关于你的下一次取的是Random池中的哪个数

0

主题

202

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2006-7-27 01:17:00 | 显示全部楼层

Re:普及一个知识,关于几率

楼主说的什么哦? 看不懂呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-7-7 14:45

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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