Логарифмаларды Java-де қалай есептеу керек?

Төмендегі формула

Майлылығы = 495/(1.0324 - 0.19077 x (LOG10 (талия - мойын)) + 0.15456 x (LOG10 (биіктігі))) - 450

Төменде менің кодексім бар

import java.math.*;

public class Position
{
    static double waist=66,neck=30,height=150;

    public static void main(String[]args)
    {
        double fat = 495/( (1.0324 - 0.19077)* (Math.log(waist - neck)/Math.log(10)) + (0.15456) *  (Math.log(height)/Math.log(10))) - 450;

        System.out.println(fat);
    }
}

Жауап дұрыс емес. Ол 11,8% (Келесі http://lowcarbdiets.about.com/library/blbodyfatcalculator пайдаланыңыз. htm )

Логарифмдерде дұрыс емес нәрсе жасадым деп ойлаймын. Дұрыс жауап алу үшін маған көмектесе аласыз.

3
Тіпті бұл дұрыс емес: (1.0324 - 0.19077 x (LOG10 (талия - мойын))! = ((1.0324 - 0.19077) * (Math.log (waist - neck) /Math.log (10)), сіз көбейту бастапқы формуланың басымдығы.
қосылды автор PeterMmm, көзі
Тіпті бұл дұрыс емес: (1.0324 - 0.19077 x (LOG10 (талия - мойын))! = ((1.0324 - 0.19077) * (Math.log (waist - neck) /Math.log (10)), сіз көбейту бастапқы формуланың басымдығы.
қосылды автор PeterMmm, көзі
Javadocs тексеріңіз. Math.log10() пайдалануыңыз қажет. Math.log() логарифмді e
қосылды автор a_horse_with_no_name, көзі
@eis: бірақ бастапқы формула log10 пайдаланады (бірақ дұрыс емес екенін білмеймін).
қосылды автор a_horse_with_no_name, көзі
@eis: бірақ бастапқы формула log10 пайдаланады (бірақ дұрыс емес екенін білмеймін).
қосылды автор a_horse_with_no_name, көзі
Сіз істеп жатқаныңыздай, немесе Math.log10 (x), @a_horse_with_no_name, немесе Math.log (x) /Math.log (10) бұл балама. Мен бұрынғы қолда бар сияқты, менде қандай да бір құндылықты көрмеймін және сіздің ерекшеліктеріңізге неғұрлым жақынырақ.
қосылды автор EJP, көзі
Сіз істеп жатқаныңыздай, немесе Math.log10 (x), @a_horse_with_no_name, немесе Math.log (x) /Math.log (10) бұл балама. Мен бұрынғы қолда бар сияқты, менде қандай да бір құндылықты көрмеймін және сіздің ерекшеліктеріңізге неғұрлым жақынырақ.
қосылды автор EJP, көзі
@a_horse_with_no_name бұл нәтижеге әсер етпейді
қосылды автор eis, көзі
@a_horse_with_no_name бұл нәтижеге әсер етпейді
қосылды автор eis, көзі

6 жауаптар

Сіз кодты дұрыс жаздыңыз. Келесі әрекеттерді орындап көріңіз:

import java.math.*;

public class Position
{
    static double waist=66,neck=30,height=150;

    public static void main(String[]args)
    {
        double fat = 495/( 1.0324
            - (0.19077 * (Math.log(waist - neck)/Math.log(10)))
            + (0.15456) * (Math.log(height)/Math.log(10))
            ) - 450;

        System.out.println(fat);
    }
}

Оның айырмашылығы - бұл 1.0324 - 0.19077 - бастапқы формулада да жоқ, сондықтан сіз жақшасыз қалды.

@A_horse_with_no_name атап өткендей, Math.log() 10 негізделген емес, бірақ бұл кодтың аумағында электрондық негізделген логарифмді қолданады, нәтиже бірдей. 10-негізде пайдалану үшін Math.log10() функциясын қолданасыз.

6
қосылды

Сіз кодты дұрыс жаздыңыз. Келесі әрекеттерді орындап көріңіз:

import java.math.*;

public class Position
{
    static double waist=66,neck=30,height=150;

    public static void main(String[]args)
    {
        double fat = 495/( 1.0324
            - (0.19077 * (Math.log(waist - neck)/Math.log(10)))
            + (0.15456) * (Math.log(height)/Math.log(10))
            ) - 450;

        System.out.println(fat);
    }
}

Оның айырмашылығы - бұл 1.0324 - 0.19077 - бастапқы формулада да жоқ, сондықтан сіз жақшасыз қалды.

@A_horse_with_no_name атап өткендей, Math.log() 10 негізделген емес, бірақ бұл кодтың аумағында электрондық негізделген логарифмді қолданады, нәтиже бірдей. 10-негізде пайдалану үшін Math.log10() функциясын қолданасыз.

6
қосылды

Журналдың есептеуі дұрыс, бірақ кейбір жақшаларыңызды бұрмалағансыз.

double fat = 495/( 1.0324 - 0.19077* (Math.log(waist - neck)/Math.log(10)) + (0.15456) *  (Math.log(height)/Math.log(10))) - 450
2
қосылды

Журналдың есептеуі дұрыс, бірақ кейбір жақшаларыңызды бұрмалағансыз.

double fat = 495/( 1.0324 - 0.19077* (Math.log(waist - neck)/Math.log(10)) + (0.15456) *  (Math.log(height)/Math.log(10))) - 450
2
қосылды
495/(1.0324 - 0.19077 x

және осы

495/( (1.0324 - 0.19077)*

сәйкес келмейді

1
қосылды
495/(1.0324 - 0.19077 x

және осы

495/( (1.0324 - 0.19077)*

сәйкес келмейді

1
қосылды