2013-02-07 21 views
5

sono consapevole della funzione del racket log, quali computer il logaritmo naturale di un numero. Sto cercando di trovare i logaritmi dei numeri generati su basi arbitrarie. In altre parole, invece di questo:Come faccio a calcolare i logaritmi non naturali in Racket?

> (log 9) 
2.1972245773362196 

mi piacerebbe fare qualcosa di simile a questo:

> (logarithm 3 9) 
2 

C'è una funzione qualcuno sa circa sia integrato al Racket o disponibili in un modulo dal pianeta Posso usare così?

risposta

15

Uso matematica: log k n = ln n/ln k:

(/ (log 9) (log 3)) 
+5

'(expt b (* x y))' è equivalente a '(expt (expt b x) y)'. Poiché i logaritmi sono l'inverso dell'esponenziazione, questo spiega perché la formula funziona. Questa era l'algebra del liceo quando l'ho scattata 35 anni fa. – Barmar

+0

ho appena insegnato logaritmi in un corso universitario degli Stati Uniti la scorsa stagione. Al momento, alcune persone, ma non altre, conoscono i logaritmi nelle scuole superiori. –

1

Racket 6.9.0.1 aggiunto un secondo argomento per basi arbitrarie. log k n può essere scritto come (log n k).

Secondo la documentazione, questo è equivalente a (/ (log n) (log k)), ma forse più veloce.

log entry in the documentation.

Problemi correlati