gpt4 book ai didi

random - 在Scheme中,你是如何做概率的?

转载 作者:行者123 更新时间:2023-12-04 05:08:25 24 4
gpt4 key购买 nike

如果我有一个像 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)))

最佳答案

也许你打算写这样的东西:

(define map-random
(lambda (proc ls p)
(map (lambda (e)
(if (<= (random) p)
(proc e)
e))
ls)))

请注意 map负责遍历输入列表并构建输出列表,您只需要决定如何处理每个元素 - 在这种情况下,这意味着是将给定的过程应用于元素还是不理会该元素取决于随机值 - 如果该值在给定的概率范围内,则应用该过程,如果不使用相同的元素。它按预期工作:
(map-random sub1 '(1 1 1 1) 0.5)
=> '(1 1 0 1) ; a possible output

关于random - 在Scheme中,你是如何做概率的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15212492/

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