1

たとえば、二次方程式x^2 + 2x + 1 = 0は未知数に関する主張xです。

したがって、 を代入するx = -1と、 と等しいため、主張は成り立ちます0。しかし、 を代入x = 1すると、 が得られるため、主張は正しくありません4

今、いくつかの問題が実際に解決策であるかどうかをテストする関数を開発するように言われました。

以下のこれをどこから始めますか?

10x – 6 = 7x + 9
4

1 に答える 1

1

それはすべて、関数の選択された表現に依存します。それらをラムダとして渡す場合、「クレーム」が真か偽かをテストするのは簡単です。

(define (test-claim f1 f2 x)
  (= (f1 x) (f2 x)))

For example:

; x^2 + 2x + 1 = 0, x = -1    
(test-claim (lambda (x) (+ (* x x) (* 2 x) 1))
            (lambda (x) 0)
            -1)

=> #t

; x^2 + 2x + 1 = 0, x = 1    
(test-claim (lambda (x) (+ (* x x) (* 2 x) 1))
            (lambda (x) 0)
            1)

=> #f

; 10x – 6 = 7x + 9, x = 5    
(test-claim (lambda (x) (- (* 10 x) 6))
            (lambda (x) (+ (* 7 x) 9))
            5)

=> #t

; 10x – 6 = 7x + 9, x = 10    
(test-claim (lambda (x) (- (* 10 x) 6))
            (lambda (x) (+ (* 7 x) 9))
            10)

=> #f
于 2013-01-20T01:04:03.957 に答える