2016-03-09 6 views

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

enter image description here

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" 
+0

e come calcolare log3 (9,0)? – Zentopia

+0

@Utopia Aggiornato la mia risposta per includere un caso generale. – dfri

+0

molto dettagliato. Grazie – Zentopia