Scheme 创建、显示和返回随机数

Scheme 创建、显示和返回随机数,scheme,mit-scheme,Scheme,Mit Scheme,我需要单独捕捉函数numerosR的数字,因为我需要它们 知道所有数字的大数、小数和平均数,但我不知道 这是我的代码: (clear) (display "Ingrese un Numero entre 10 y 40: ") (define Numero (read)) ; Funcion numerosRamdon genera numeros aleatoreos entre 10 y 150 ; agrupados por columnas de 10 numeros (define

我需要单独捕捉函数numerosR的数字,因为我需要它们 知道所有数字的大数、小数和平均数,但我不知道

这是我的代码:

(clear)
(display "Ingrese un Numero entre 10 y 40: ")
(define Numero (read))

; Funcion numerosRamdon genera numeros aleatoreos entre 10 y 150
; agrupados por columnas de 10 numeros

(define (numerosRandom)
  (define contador 1)
  (define contadorColumnas 1)
  (define (ciclo)
    (define numerosR (+ (random 141) 10))
    (if (and (>= Numero 10)
             (<= Numero 40)
             (<= contadorColumnas 10))
        (if (<= contador Numero)
            (begin
              (display numerosR)
              (display #\space)
              (set! contador (+ contador 1))
              (set! contadorColumnas (+ contadorColumnas 1))
              (ciclo)))
        (begin
          (newline)
          (set! contadorColumnas 1)
          (ciclo))))
  (ciclo))

(numerosRandom)
(清除)
(显示“入口编号中心10 y 40:”)
(定义数字(读取))
; 第10和第150页的数字功能
; 阿格鲁帕多斯10号专栏
(定义(数值随机)
(定义contador 1)
(将列定义为1)
(定义(ciclo)
(定义numerosR(+(随机141)10))
(如果(和(>=数字10)

(此代码重写
numerosRandom
以将随机数的生成与其显示分开。它还将随机数作为列表返回。
numerosRandom
的开头保持不变

(define (numerosRandom)

  (define contador 1)
现在
circlo
只做一件事。它创建一个随机数列表。现在
circlo
接受一个参数-一个用于累积随机数的列表

  (define (circlo accumulator)
    (define numerosR (+ (random 141) 10))
    (cond 
      ((= contador Numero)
       (reverse accumulator))
      (else
       (set! contador (+ contador 1))
       (circlo (cons numerosR accumulator)))))
  (define (print-numerosR numeros contadorColumnas)
    (cond ((null? numeros) "")
      ((<= contadorColumnas 10)
       (display (car numeros))
       (display #\space)       
       (print-numerosR (cdr numeros)
               (+ contadorColumnas 1)))
      (else
       (newline)
       (display (car numeros))
       (display #\space)
       (print-numerosR (cdr numeros)
               (+ contadorColumnas 1)))))
一个新的本地函数
print numerosR
显示随机数

  (define (circlo accumulator)
    (define numerosR (+ (random 141) 10))
    (cond 
      ((= contador Numero)
       (reverse accumulator))
      (else
       (set! contador (+ contador 1))
       (circlo (cons numerosR accumulator)))))
  (define (print-numerosR numeros contadorColumnas)
    (cond ((null? numeros) "")
      ((<= contadorColumnas 10)
       (display (car numeros))
       (display #\space)       
       (print-numerosR (cdr numeros)
               (+ contadorColumnas 1)))
      (else
       (newline)
       (display (car numeros))
       (display #\space)
       (print-numerosR (cdr numeros)
               (+ contadorColumnas 1)))))
笔记 因为随机数列表
numerosR
numerosRandom
计算的最后一项,所以它总是返回

通过将其作为附加值传递给
circlo
,消除
contador
的突变将是一个很好的练习