24 Stimmen

Was ist das Gegenteil von Math Power (**) in Ruby?

Ich habe mich gefragt, wie man den Kehrwert der Potenz in Ruby ermitteln kann?

2 ** 4 # => 16

und dann würde ich gerne die Umkehrung davon erhalten, und ich bin nicht sicher, welchen Operator ich verwenden soll

16 ?? 2 # => 4

66voto

paxdiablo Punkte 809679

Der Kehrwert der Potenzierung ist der Logarithmus. Wenn ab = c entonces logac = b .

Logarithmusfunktionen finden Sie in der Math Modul, insbesondere log() für Basis- e y log10() für die Basis-10.

Um einen Logarithmus in eine verschiedene Basis (z.B. n ), verwenden Sie die Formel logNa = logxa/logxN donde x ist ein Wert wie e oder 10.

Für Ihr spezifisch Fall:

log216 = loge16/loge2 = Math.log(16) / Math.log(2) = 4

Ob du die Erklärung für gut hältst, weil sie dein Wissen erweitert, oder für schlecht, weil du Mathe in der Schule gehasst hast, ist ganz dir überlassen :-)

6voto

Peter Punkte 120325
Math.log(16) / Math.log(2)

1voto

ynkr Punkte 22876

Ein sauberer Weg, um den Logarithmus zu erhalten, wäre, beginnend mit Ruby 1.9.1, die Verwendung von Math.log2 :

[1] pry(main)> Math.log2(2**4)
=> 4.0

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X