Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scheme中的递归Pascal-找不到正确的算法 (定义(pascal x y) )cond((或(_Scheme_Lisp_Racket_Pascals Triangle - Fatal编程技术网

Scheme中的递归Pascal-找不到正确的算法 (定义(pascal x y) )cond((或(

Scheme中的递归Pascal-找不到正确的算法 (定义(pascal x y) )cond((或(,scheme,lisp,racket,pascals-triangle,Scheme,Lisp,Racket,Pascals Triangle,你非常接近,但你的情况并不像你想象的那样。你有一个类似off-by-1的错误,并且你没有正确地分割你的cond案例 (define (pascal x y) (cond ((or (<= x 0) (<= y 0) (< x y )) 0) ((or (= 1 y) (= x y) ) 1) (else (+ (pascal (- x 1) y) (pascal (- x 1) (- y 1)))))) 我对您的条件进行了一些小的更改,并获

你非常接近,但你的情况并不像你想象的那样。你有一个类似off-by-1的错误,并且你没有正确地分割你的
cond
案例

(define (pascal x y)
  (cond ((or (<= x 0) (<= y 0) (< x y )) 0)
        ((or (= 1 y) (= x y) ) 1)
        (else (+ (pascal (- x 1) y) (pascal (- x 1) (- y 1))))))
我对您的条件进行了一些小的更改,并获得以下输出:

#lang racket/base
(for ((x (in-range 1 6)))
    (for ((y (in-range (add1 x))))
      (printf "~a " (pascal x y)))
    (newline))
0 1 
0 1 1 
0 1 2 1 
0 1 3 3 1 
0 1 4 6 4 1 
如果这没有帮助,我可以稍后编辑并将解决方案放入,但这闻起来像是家庭作业,我不想只发布解决方案

(for ((x (in-range 6)))
    (for ((y (in-range (add1 x))))
       (printf "~a " (pascal x y)))
    (newline))
1 
1 1 
1 2 1 
1 3 3 1 
1 4 6 4 1 
1 5 10 10 5 1