((* P (Puissance1 P (- N 1))))))
(println "Puissance1")
(println (Puissance1 5 5))
+(println (Puissance1 2 12))
;(trace true)
;O(log N)
(define (Puissance2 P N)
(cond
- ((= N 0) 1)
((= N 1) P)
- ((> N 1)
+ ((= N 2) (* P P))
+ ((> N 2)
(cond
((= (mod N 2) 0) (Puissance2 (Puissance2 P 2) (/ N 2)))
- ((* P (Puissance2 (Puissance2 P 2) (/ (- 1 N) 2))))))))
+ ((* P (Puissance2 (Puissance2 P 2) (/ (- N 1) 2))))))))
(println "Puissance2")
-;(println (Puissance2 5 5))
+(println (Puissance2 5 5))
+(println (Puissance2 2 12))
;(trace nil)
;(trace true)
; https://fr.wikipedia.org/wiki/Coefficient_binomial
-; relation de pascal
+; relation de pascal commenté
(define (comb N P)
(cond
((= P 0) 1)
((= N P) 1)
- ((+ (comb (- N 1) P) (comb (- N 1) (- P 1))))))
+ ;((+ (comb (- N 1) P) (comb (- N 1) (- P 1))))))
+ ((/ (* N (comb (- N 1) (- P 1))) P))))
(println "comb")
(println (comb 5 4))
(println (comb 60 4))
+(println "(comb 12 8) = "(comb 12 8))
;(trace nil)
((append
;the pivot is the first element of the list
(qsort (list< (first L) (rest L)))
- (cons (first L) '())
+ (list (first L))
(qsort (list>= (first L) (rest L)))))))
(println "qsort")
(println (qsort C))