ракетка - цифра со случайными цифрами - PullRequest
0 голосов
/ 12 января 2020

Я пытаюсь написать рекурсивную функцию, которая будет генерировать фигуру с n случайными цифрами. Для генерации чисел я хочу использовать (random 10). Я хочу, чтобы функция уменьшала n до тех пор, пока она не достигнет 0.

(define (generate-number n)
  (if (= n 0) 0
       (generate-number (- n 1))))

Может кто-нибудь помочь мне, где разместить (random 10) и сделать эту работу.

1 Ответ

1 голос
/ 12 января 2020

Сбор n случайных чисел (до 10) в списке:

(define (random-list n)
  (if (= n 0)
      '()
      (cons (random 10)
            (random-list (sub1 n)))))

(random-list 10)

или отображение их:

(define (display-n-random n)
  (cond
    [(= n 0) (void)]
    [else    (displayln (random 10))
             (display-n-random (sub1 n))]))

(display-n-random 10)

Таким образом, вы бы сгенерировали число с n случайными цифрами, используя (random 10):

(define (generate-number n)
  (cond [(= n 1) (random 10)]
        [else (+ (random 10)
                 (* 10 (generate-number (sub1 n))))]))

(generate-number 10)

Обратите внимание, что базовый регистр предназначен для одного числа di git, так как 0 di git чисел не выходите.

...