gpt4 book ai didi

c# - 如何按给定的百分比创建概率?

转载 作者:太空狗 更新时间:2023-10-29 20:56:55 24 4
gpt4 key购买 nike

我正在尝试为游戏创建基于百分比的概率。例如。如果一个元素有 45% 的几率造成暴击,那一定意味着它在 100 次命中中有 45 次是暴击。

首先,我尝试使用一个简单的解决方案:

R = new Random();
int C = R.Next(1, 101);
if (C <= ProbabilityPercent) DoSomething()

但是在 100 次迭代中有机会,例如48%,它给出了 40-52(满分 100)。49、50、51 也一样。因此,这些“百分比”之间没有区别。

问题是如何设置百分比,例如50,并随机获得 100 中的 50?对于稀有元素的发现概率来说,有机会增加找到元素的机会是一件非常重要的事情。所以 1% 的增益是明智的,因为现在不是了。

抱歉我的英语不好。

最佳答案

您只需考虑重复滚动的均匀分布。

您不能查看超过 100 卷,因为强制它产生正好 45 不会是随机的。通常,这样的卷应该表现出“缺乏内存”。例如,如果您掷骰子寻找 6,则您有六分之一的机会。如果你掷了 5 次,但没有得到 6 - 那么:下一次掷出 6 的机会不是 1。它仍然是 6 分之一。因此,你只能看看它的表现如何在统计上大量的事件中摊销时的期望...... 100,000 说。

基本上:您当前的代码没有问题。如果用户知道(因为他们已经击中了 55 次而没有暴击)接下来的 45 次击中必须是暴击,那么它就不再是随机的,他们可以玩弄系统。

还有; 45%的暴击几率似乎有点高;p

关于c# - 如何按给定的百分比创建概率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13342004/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com