如何在 common lisp 中获得负随机整数?标准库中有一些功能吗?
---- 更新于 2012/06/15 ---- 也许我没有正确描述我的问题。我真正想要的是得到n和-n之间的随机整数。
如何在 common lisp 中获得负随机整数?标准库中有一些功能吗?
---- 更新于 2012/06/15 ---- 也许我没有正确描述我的问题。我真正想要的是得到n和-n之间的随机整数。
直接应用否定。
(- (random x))
修改后的问题的编辑。这不是一个普通的 lisp 事情,而是一个通用的编程事情。
(defun random-n (n)
(- (random (1+ (* 2 n))) n))
random
在CLHS中继续阅读。
如果你想要从-n
到的随机数n
:
2n+1
因为random是从0到n(排除n)(defun my-random (n)
(- (random (1+ (* 2 n))) n))
如您所料,(- -1 (random n))
, 会给您一个介于 -n 和 -1 之间的随机整数,概率(大约)一致,其中 n 是任意整数。