我需要分别捕获函数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)
答案 0 :(得分:1)
此代码重写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)))))
新的本地函数print-numerosR
显示随机数。
(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
的随机数列表,然后显示,然后作为列表返回。
(define numerosR (circlo '()))
(print-numerosR numerosR 0)
numerosR)
由于随机数列表numerosR
是由numerosRandom
评估的最后一项,因此始终会返回。
通过将contador
作为附加值传递给circlo
来消除@classmethod
def get_subclasses(cls):
return set(cls.__subclasses__()) | {g for s in cls.__subclasses__()
for g in s.get_subclasses()}
的变异是一个很好的练习。