Scheme 开发测试建议的解决方案是否为解决方案的功能?

Scheme 开发测试建议的解决方案是否为解决方案的功能?,scheme,racket,Scheme,Racket,例如,二次方程x^2+2x+1=0是关于某个未知数x的声明 因此,如果替换x=-1,则声明成立,因为它将等于0。 但是如果用x=1,则声明将不成立,因为您将得到4 现在我被告知要开发一个函数来测试一些问题是否是一个解决方案 下面这张我从哪里开始 10x – 6 = 7x + 9 这完全取决于所选择的函数表示形式。如果您将它们作为lambda传递,那么测试“声明”是真是假就很简单了: (define (test-claim f1 f2 x) (= (f1 x) (f2 x))) For e

例如,二次方程
x^2+2x+1=0
是关于某个未知数
x
的声明

因此,如果替换
x=-1
,则声明成立,因为它将等于
0
。 但是如果用
x=1
,则声明将不成立,因为您将得到
4

现在我被告知要开发一个函数来测试一些问题是否是一个解决方案

下面这张我从哪里开始

10x – 6 = 7x + 9

这完全取决于所选择的函数表示形式。如果您将它们作为lambda传递,那么测试“声明”是真是假就很简单了:

(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

这完全取决于所选择的函数表示形式。如果您将它们作为lambda传递,那么测试“声明”是真是假就很简单了:

(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

不清楚你在问什么。您是在问“如何找到线性方程的解?”还是在问如何求解它,例如,5尝试开发函数,以测试提议的解是否实际上是10x-6=7x+9的解。我被告知用解决方案中的数字和非解决方案中的数字来测试这个函数。不清楚你在问什么。您是在问“如何找到线性方程的解?”还是在问如何求解它,例如,5尝试开发函数,以测试提议的解是否实际上是10x-6=7x+9的解。我被告知要用解的数字和非解的数字来测试这个函数。