首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mandelbrot集合方案

Mandelbrot集合方案
EN

Stack Overflow用户
提问于 2013-11-20 19:43:01
回答 2查看 329关注 0票数 0

我想知道是否有人对写曼德尔布罗特河有什么建议。我为自己编写了以下函数以提供帮助:

代码语言:javascript
复制
(define (make-complex a b) (cons a b))
(define (real-coeff c) (car c))
(define (imag-coeff c) (cdr c))
(define (c-add c d)
      (make-complex (+ (real-coeff c) (real-coeff d))
                   (+ (imag-coeff c) (imag-coeff d))))
(define (c-mult c d)
    (make-complex (- (* (real-coeff c) (real-coeff d))
                  (* (imag-coeff c) (imag-coeff d)))
               (+ (* (real-coeff c) (imag-coeff d))
                  (* (imag-coeff c) (real-coeff d)))))
(define (c-length c)
   (define (square x) (* x x))
        (sqrt (+ (square (real-coeff c))
              (square (imag-coeff c)))))

流应该返回: a,fz(a),fz(A))。对于如何使用我编写的函数来创建具有此输出的流,我感到困惑。有谁能给我一些好的建议,告诉他们该怎么做?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-11-20 23:18:04

z的值开始,并使您的函数fz(x)如下:

代码语言:javascript
复制
(define (make-fz z) (lambda (x) (+ z (* 2 x))))

现在,使用srfi-41流库,按照您的指示定义一个流:尝试它(使用z of 0):

代码语言:javascript
复制
> (stream->list (stream-take 10 (stream-iterate (make-fz 0) 1)))
(1 2 4 8 16 32 64 128 256 512)

注意:stream-iterate的定义如下:

代码语言:javascript
复制
(define-stream (stream-iterate fz a)
  (stream-cons a (stream-iterate fz (fz a))))
票数 3
EN

Stack Overflow用户

发布于 2013-11-20 19:51:07

正如uselpa所说,Scheme已经内置了复数。您提到的功能如下:

  • make-rectangular
  • real-part
  • imag-part
  • +
  • *
  • magnitude

至于你问题的第二部分,什么是z?在不知道你想要什么的情况下很难回答这个问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20105436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档