gpt4 book ai didi

performance - 任何可能的正数但可能接近于零的随机函数

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:38:48 26 4
gpt4 key购买 nike

我正在寻找一个随机数函数,它可能会返回任何(正)数,但在统计上不太可能远离零。我有一个算法可以满足我的需要,但似乎效率不高:

def my_random():
if random.randrange(2):
return 1 + my_random()
return 0

我知道可以在没有递归的情况下重写它,但这并不能真正消除低效率。任何人都可以建议具有更好性能的替代算法吗?

我的实现语言是python,但是算法才是最重要的。

最佳答案

如果你有一个返回范围 [0, 1) 的随机 float 的函数,例如 Python 的 random.random,那么你可以从 exponential distribution 中采样通过

def random_exponential(scale=1.):
x = random.random()
return -math.log(1. - x) * scale

(受我刚刚阅读的 NumPy 源代码的启发;如果可以选择使用 NumPy,您也可以调用 np.random.exponential。)

如果您需要随机整数,请考虑截断它们。

关于performance - 任何可能的正数但可能接近于零的随机函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18727592/

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