Cum se calculează logaritmi în java? (Programare, Java)

Muhammad Haryadi Futra a intrebat.

Încerc să scriu un program Java care poate lua valori și le poate pune într-o formulă care implică log 1/3.

Cum pot calcula log 1/3 în Java?

Comentarii

  • Aveți nevoie de logaritm natural? Deci, ar trebui să aruncați o privire la Math::log –  > Por Dmitri Ginzburg.
5 răspunsuri
CoderCroc

Puteți utiliza Math.log(value) pentru a obține jurnalul unei anumite valori, unde valoarea este considerată a fi în double.puteți utiliza, de asemenea, și Math.log10(value) pentru a obține log în baza 10.

Deci, puteți folosi doar

Math.log(1/3.0)

Comentarii

  • Punctul de vedere al OP este corect. El întreabă cum se calculează log(1/3). Ați încercat Math.log(1/3)? –  > Por Ruchira Gayan Ranaweera.
Stefan Dollase

Atunci când vrei să calculezi logaritmul trebuie să cunoști baza. Odată ce cunoașteți baza, puteți efectua calculul:

log_b(x) = ln(x) / ln(b)

http://en.wikipedia.org/wiki/Logarithm#Change_of_base

În Java Math#log(double) calculează logaritmul natural. Astfel, puteți utiliza această funcție pentru a calcula logaritmul la o anumită bază b:

double result = Math.log(x) / Math.log(b);

Comentarii

  • de ce rezultatul este diferit de cel obținut cu calculatorul? –  > Por Muhammad Haryadi Futra.
  • Trebuie să știți ce logaritm doriți să utilizați. Dacă este vorba de cel la baza de 10, trebuie să setați b ca 10. Calculatorul dvs. utilizează probabil e ca bază b, deci acesta ar fi logaritmul natural. ro.wikipedia.org/wiki/Natural_logarithm –  > Por Stefan Dollase.
Puspam

1/3 dă rezultatul ca valoare de tip întreg. Așadar, rezultatul va fi 0, nu 0,3333.

Prin urmare, Math.log(1/3) = Math.log(0), ceea ce duce la infinit.

Așadar, trebuie să scrieți Math.log(1/3.0) pentru a obține rezultatul dorit.

MrTux

Puteți calcula logaritmul natural folosind metoda Java.lang.Math.log():

System.out.println("Math.log(1/3.0)=" + Math.log(1/3.0));

A se vedea http://www.tutorialspoint.com/java/lang/math_log.htm și http://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#log%28double%29

Pentru a obține log_10, puteți proceda după cum urmează:

System.out.println("log_10(1/3.0)=" + (Math.log(1/3.0)/Math.log(10)));

Comentarii

  • Am folosit-o, dar când am calculat acest lucru: Math.log(5/2.0), rezultatul este 0.9162907318741551, dar când calculez cu calculatorul meu rezultatul este 0.3979xxxx, de ce poate fi diferit? –  > Por Muhammad Haryadi Futra.
  • Folosiți lnsau log de pe calculatorul dumneavoastră? –  > Por MrTux.
  • @MuhammadHaryadiFutra Scrieți doar ln 2,5 și log 2,5 în google. Veți vedea ambele numere. –  > Por Michał Urbaniak.
Ruchira Gayan Ranaweera

Nu aveți nevoie de o nouă implementare există o funcție încorporată pentru acest lucru

Citiți despre Math.log()

Dar în acest caz log(1/3) vă va da o valoare ca infinityDacă utilizați Math.log(1/3).

Puteți utiliza log regula după cum urmează.

log(1/3) =log(1)-log(3)

Acum

Math.log(1/3)=Math.log(1)-Math.log(3)

De exemplu:

System.out.println(Math.log(1)-Math.log(3));

Out put:

-1.0986122886681098

Tags: