gpt4 book ai didi

ios - 两个数字之间随机 float 的概率是多少?

转载 作者:行者123 更新时间:2023-11-28 19:14:45 25 4
gpt4 key购买 nike

我知道标题对我想要实现的目标不是很清楚,所以我将更深入地解释我想要实现的目标。

几乎我有一个方法返回两个数字之间的 float ,如下所示:

- (float)randomFloatBetween:(float)num1 andLargerFloat:(float)num2 {
return ((float)arc4random() / ARC4RANDOM_MAX) * (num2-num1) + num1;
}

现在我想给它增加一个百分比机会。例如,我需要一个介于 3 和 5 之间的 float ,但数字介于 3 和 4 之间的可能性为 85%,但数字介于 4 和 5 之间的可能性仍为 15%。

这可能吗?我曾尝试查看其他 S.O 帖子,但似乎没有人想要完成此任务。

谢谢!

最佳答案

如果你缩放它,你可以用一个随机数来做到这一点:

r = random();
if (r <= 0.85)
n = 3 + (r / 0.85);
else
n = 4 + ((r - 0.85) / 0.15);

这可以概括。如果你的随机数在 n1 和 n3 之间,在 n1 和 n2 之间有 p1 的机会,在 n2 之间有 p2 的机会和 n3,(其中 n1 < n2 < n3,并且 p1 + p2 = 1)然后

r = random();
if (r < p1)
n = n1 + (r / p1)*(n2 - n1)
else
n = n2 + ((r - p1) / p2)*(n3 - n2)

关于ios - 两个数字之间随机 float 的概率是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12999568/

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