Data update
This commit is contained in:
parent
4bb20c9b71
commit
cbaf4c4b64
12390 changed files with 318560 additions and 27248 deletions
48
Task/Arithmetic-derivative/Racket/arithmetic-derivative.rkt
Normal file
48
Task/Arithmetic-derivative/Racket/arithmetic-derivative.rkt
Normal file
|
|
@ -0,0 +1,48 @@
|
|||
#lang racket/base
|
||||
|
||||
(require
|
||||
math/number-theory
|
||||
racket/contract/base
|
||||
racket/match)
|
||||
|
||||
(provide
|
||||
(contract-out
|
||||
[δ (-> rational? rational?)]))
|
||||
|
||||
(define (∂ N)
|
||||
(let ([|N| (inexact->exact (abs N))])
|
||||
(for/sum ([power (in-list (factorize |N|))])
|
||||
(match-define (list prime expt) power)
|
||||
(/ expt prime))))
|
||||
|
||||
(define (δ m/n)
|
||||
(define m (numerator m/n))
|
||||
(define n (denominator m/n))
|
||||
(cond
|
||||
[(= 1 n) (* m (∂ m))]
|
||||
[else
|
||||
(/ (- (* n (δ m)) (* m (δ n)))
|
||||
(* n n))]))
|
||||
|
||||
(module+ test
|
||||
(require
|
||||
racket/format
|
||||
racket/string)
|
||||
|
||||
(define (align-number n width)
|
||||
(~a n #:min-width width #:align 'right))
|
||||
|
||||
(displayln "task: show arithmetic derivatives of the integers -99..100")
|
||||
(define cols (build-list 10 add1))
|
||||
(for ([row (in-inclusive-range -10 9)])
|
||||
(displayln
|
||||
(string-join
|
||||
(map (lambda (col) (align-number (δ (+ (* 10 row) col)) 5))
|
||||
cols)
|
||||
" │ ")))
|
||||
(newline)
|
||||
|
||||
(displayln "stretch task: show arithmetic derivatives of 10^m / 7 for m=1..20")
|
||||
(for ([n (in-inclusive-range 1 20)])
|
||||
(displayln
|
||||
(format "D(10^~a) / 7 = ~a" (align-number n 2) (/ (δ (expt 10 n)) 7)))))
|
||||
Loading…
Add table
Add a link
Reference in a new issue