【发布时间】:2013-09-14 16:12:07
【问题描述】:
我正在寻找一个随机数函数,它可能会返回任何(正)数,但在统计上不太可能远离零。我有一个算法可以满足我的需求,但似乎效率低下:
def my_random():
if random.randrange(2):
return 1 + my_random()
return 0
我知道可以在不递归的情况下重写它,但这并不能真正否定低效率。任何人都可以提出具有更好性能的替代算法吗?
我的实现语言是python,但算法才是最重要的。
【问题讨论】:
-
这个问题的答案可能会有所帮助:stackoverflow.com/questions/14266717/…
-
你可能想搜索“随机数对数分布”有一些很好的解决方案(一些在堆栈溢出)
-
您是否愿意接受生产数量的上限?
-
P.S.您是否尝试过计时此功能?仅当您获得大量输出时,性能才会受到影响,这在统计上是不可能的。 99% 的返回值将小于等于 6。
-
是的,我知道该功能不太可能需要很长时间,但在服务器情况下,我希望避免挂起的可能性
标签: performance algorithm random