对于在线游戏(MMORPG),我想创建具有随机强度值的角色(玩家)。越是强的角色,这种东西就越不应该存在。
Example:
- 12,000 实力 1 玩家
- 10,500 实力 2 名玩家
- 8,500 实力 3 玩家
- 6000实力4位玩家
- 3,000 实力 5 名玩家
实际上,我需要从 1.1 到 9.9 的浮动渐进强度值,但对于此示例,用整数强度更容易解释它。
你知道我如何用 PHP 编写这个代码吗?当然,我需要 mt_rand() 来生成随机数。但是我怎样才能实现这个金字塔结构呢?
它是什么功能?根函数、指数函数、幂函数还是对数函数?
提前致谢!
它在图表中应该如下所示:
金字塔图 http://img7.imageshack.us/img7/107/pyramidy.jpg
您可以使用对数函数模拟一种分布,例如您所描述的分布。以下将返回 1.1 到 9.9 之间的随机强度值:
function getRandomStrength()
{
$rand = mt_rand() / mt_getrandmax();
return round(pow(M_E, ($rand - 1.033) / -0.45), 1);
}
超过 1000 次运行的分布(其中S
是强度值下限):
S | Count
--+------
1 - 290
2 - 174
3 - 141
4 - 101
5 - 84
6 - 67
7 - 55
8 - 50
9 - 38
##笔记:
此答案已更新为包含强度值 1.1(之前由于四舍五入而未包含)并修复了强度值mt_getrandmax()功能
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)