程序随机程序编程(x)

时间:2012-09-05 03:54:27

标签: random scheme equals probability

我不明白我该如何解决这个问题的方案:

使用random来定义一个带有数字x的过程波动,并返回一个值x-2,x-1,x,x + 1或x + 2,随机选择并且概率相等。

我尝试使用多个randoms并添加x两次,但我找不到答案可以有人帮忙吗?

1 个答案:

答案 0 :(得分:0)

试试这个:

(define (fluctuate x)
  (+ x (- (random 5) 2)))

这是它的工作原理:

  • (random 5)生成[0,4]
  • 范围内的随机整数
  • 从前一个范围中减去2会产生[-2,2]
  • 范围内的随机整数
  • x添加到上一个结果会产生值x-2,x-1,x + 0,x + 1,x + 2(

请注意,random过程通过伪随机数生成器随机选择一个数字并且概率相等,所使用的特定算法取决于Scheme解释器的实现。