- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在寻找一个随机数函数,它可能会返回任何(正)数,但在统计上不太可能远离零。我有一个算法可以满足我的需要,但似乎效率不高:
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/
所以我目前正在代码 war 中解决以下问题: 返回一个数组,其中第一个元素是正数的计数,第二个元素是负数的总和。如果输入数组为空或 null,则返回一个空数组。 我想出了下面的代码,它并不漂亮,但我知
我想禁用文本框中的字母,这就是我使用此表达式的原因: /^[0-9]*$/ 问题是我也想允许负数, 这个表达式不允许我使用减号。(-)..我该怎么办? 最佳答案 尝试使用以下正则表达式: /^-?[0
这是一道面试题。我们有一个正整数数组,我们必须重新排列和连接数组元素,以便生成的数字是可以使用此数组形成的最大数字。 例如: [884 88] -> 88884 [20 19 90] -> 90201
所以我有点无奈。我想我了解如何对 IEEE-754 数字进行加法,但我在减法方面遇到了很大的问题。我感觉我的想法是对的,但我想和大家确认一下。 因此我们有以下两个 IEEE-754 编号: x: 0
我想将一个正数转换成相应的数字列表——数字也应该是整数。 转换时,比如1024,应该返回[1,0,2,4] 最佳答案 在 Swift 4.1 或更高版本中 let number = 1024 let
如果 float 可以用来正确表示我将使用的参数范围,我正在尝试为我的音频应用程序弄清楚。 它需要的“最大”掩码用于频率参数,它是正的,并且允许最多两位数字作为尾数(即从 20.00 hz 到 220
我是一名优秀的程序员,十分优秀!