Voglio calcolare log(2)8
in Swift senza moduli di importazione. Non riesco a trovare alcuna funzione nel documento.Swift ha una funzione di logaritmo incorporata?
7
A
risposta
14
È possibile utilizzare i metodi log2(:Double)
o log2f(:Float)
dallo Xcode Tools, disponibili ad es. importazione UIKit
o Foundation
:
func log2(x: Double) -> Double
func log2f(x: Float) -> Float
Ad esempio, in un parco giochi
print(log2(8.0)) // 3.0
(Edit Oltre WRT tuo commento qui sotto)
Se si vuole calcolare la vostra abitudine-base funzione di registro, è possibile utilizzare la seguente relazione cambio di base per i logaritmi
Quindi, ad es. calcolo log3
, si potrebbe scrivere la seguente funzione
func log3(val: Double) -> Double {
return log(val)/log(3.0)
}
print(log3(9.0)) // "2.0"
Oppure, semplicemente una funzione di log personalizzato-base:
func logC(val: Double, forBase base: Double) -> Double {
return log(val)/log(base)
}
print(logC(9.0, forBase: 3.0)) // "2.0"
print(logC(16.0, forBase: 4.0)) // "2.0"
e come calcolare log3 (9,0)? – Zentopia
@Utopia Aggiornato la mia risposta per includere un caso generale. – dfri
molto dettagliato. Grazie – Zentopia