1

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

使用 random 来定义一个过程波动,它接受一个数字 x 并返回值 x-2、x-1、x、x+1 或 x+2 之一,这些值是随机选择的,概率相等。

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

4

1 回答 1

1

尝试这个:

(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 解释器的实现。

于 2012-09-05T04:10:52.890 回答