You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
			
				
					183 lines
				
				1.5 KiB
			
		
		
			
		
	
	
					183 lines
				
				1.5 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								
							 | 
						||
| 
								 | 
							
								Exercise 2.34: Evaluating a polynomial in 
							 | 
						||
| 
								 | 
							
								  x
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								at a given value of 
							 | 
						||
| 
								 | 
							
								  x
							 | 
						||
| 
								 | 
							
								 can be formulated as an accumulation.  We evaluate
							 | 
						||
| 
								 | 
							
								the polynomial
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      a
							 | 
						||
| 
								 | 
							
								      n
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      x
							 | 
						||
| 
								 | 
							
								      n
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  +
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      a
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        n
							 | 
						||
| 
								 | 
							
								        −
							 | 
						||
| 
								 | 
							
								        1
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      x
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        n
							 | 
						||
| 
								 | 
							
								        −
							 | 
						||
| 
								 | 
							
								        1
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  +
							 | 
						||
| 
								 | 
							
								  ⋯
							 | 
						||
| 
								 | 
							
								  +
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      a
							 | 
						||
| 
								 | 
							
								      1
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    x
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  +
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    a
							 | 
						||
| 
								 | 
							
								    0
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								using a well-known algorithm called 
							 | 
						||
| 
								 | 
							
								Horner’s rule, which structures
							 | 
						||
| 
								 | 
							
								the computation as
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    (
							 | 
						||
| 
								 | 
							
								    …
							 | 
						||
| 
								 | 
							
								    (
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      a
							 | 
						||
| 
								 | 
							
								      n
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    x
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  +
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      a
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								        n
							 | 
						||
| 
								 | 
							
								        −
							 | 
						||
| 
								 | 
							
								        1
							 | 
						||
| 
								 | 
							
								      
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    x
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  +
							 | 
						||
| 
								 | 
							
								  ⋯
							 | 
						||
| 
								 | 
							
								  +
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      a
							 | 
						||
| 
								 | 
							
								      1
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								    x
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  +
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      a
							 | 
						||
| 
								 | 
							
								      0
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    .
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								In other words, we start with 
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    a
							 | 
						||
| 
								 | 
							
								    n
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								, multiply by 
							 | 
						||
| 
								 | 
							
								  x
							 | 
						||
| 
								 | 
							
								, add
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    a
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      n
							 | 
						||
| 
								 | 
							
								      −
							 | 
						||
| 
								 | 
							
								      1
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								, multiply by 
							 | 
						||
| 
								 | 
							
								  x
							 | 
						||
| 
								 | 
							
								, and so on, until we reach
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    a
							 | 
						||
| 
								 | 
							
								    0
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								.82
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Fill in the following template to produce a procedure that evaluates a
							 | 
						||
| 
								 | 
							
								polynomial using Horner’s rule.  Assume that the coefficients of the polynomial
							 | 
						||
| 
								 | 
							
								are arranged in a sequence, from 
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    a
							 | 
						||
| 
								 | 
							
								    0
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								 through 
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    a
							 | 
						||
| 
								 | 
							
								    n
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define 
							 | 
						||
| 
								 | 
							
								  (horner-eval x coefficient-sequence)
							 | 
						||
| 
								 | 
							
								  (accumulate 
							 | 
						||
| 
								 | 
							
								   (lambda (this-coeff higher-terms)
							 | 
						||
| 
								 | 
							
								     ⟨??⟩)
							 | 
						||
| 
								 | 
							
								   0
							 | 
						||
| 
								 | 
							
								   coefficient-sequence))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								For example, to compute 
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    1
							 | 
						||
| 
								 | 
							
								    +
							 | 
						||
| 
								 | 
							
								    3
							 | 
						||
| 
								 | 
							
								    x
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  +
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    5
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      x
							 | 
						||
| 
								 | 
							
								      3
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								    +
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								      x
							 | 
						||
| 
								 | 
							
								      5
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								 at 
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								    x
							 | 
						||
| 
								 | 
							
								    =
							 | 
						||
| 
								 | 
							
								    2
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								 you
							 | 
						||
| 
								 | 
							
								would evaluate
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(horner-eval 2 (list 1 3 0 5 0 1))
							 |