【发布时间】:2013-03-04 22:36:24
【问题描述】:
如果我有一个像 sub1 和一个列表这样的过程,如何将概率值应用于列表的每个元素?
类似这样的:(blahblah sub1 '(1 1 1 1) 0.5)
我希望它以例如 0.5 的概率将 sub1 应用于每个元素。但是,我不知道该怎么做。我想我必须随机使用一些方法,但我不确定如何。帮忙?
这是我到目前为止所拥有的。它根本不起作用。
(define map-random
(lambda (proc ls p)
(map
(lambda (x)
(if (null? ls) '()
(proc x (+ x (random p))))) ls)))
【问题讨论】:
-
所以你的意思是,你想要
map一个具有函数的序列充当要么“sub1”或基于@987654323 的identity function @?也就是说,考虑一个函数,它接受 x 并根据随机值返回 sub1(x) 或 x。 -
是的。这就是我想要做的。
-
那就去做吧——它要么工作要么不工作。但即使它不起作用,发布尝试的代码以及它如何“不起作用”也会为问题提供更好的基础。
-
考虑这个:“如果随机在 [0, 1) 范围内
-
好吧,它像十进制数字一样返回,这是不对的。如果 proc 是加 1 并且列表全是零,那么它应该返回 1 和 0,对吧?
标签: random scheme probability