কিভাবে জাভা মধ্যে লগারিদম গণনা?

নিম্নলিখিত সূত্র

ফ্যাট = 495/(1.0324 - 0.19077 এক্স (LOG10 (কোমর - ঘাড়)) + 0.15456 এক্স (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 ব্যবহার করুন। এইচটিএম )

আমি বিশ্বাস করি আমি লগারিদম ভুলভাবে কিছু করেছি। সঠিক উত্তর পেতে আমাকে সাহায্য করুন।

3
এমনকি এটি ভুল বলে মনে হচ্ছে: (1.0324 - 0.19077 এক্স (LOG10 (কোমর - ঘাড়)) = ((1.0324 - 0.19077) * (Math.log (কোমর - গলা)/Math.log (10)), আপনি গুণমান "override" মূল সূত্র থেকে অগ্রাধিকার।
যোগ লেখক PeterMmm, উৎস
এমনকি এটি ভুল বলে মনে হচ্ছে: (1.0324 - 0.19077 এক্স (LOG10 (কোমর - ঘাড়)) = ((1.0324 - 0.19077) * (Math.log (কোমর - গলা)/Math.log (10)), আপনি গুণমান "override" মূল সূত্র থেকে অগ্রাধিকার।
যোগ লেখক PeterMmm, উৎস
Javadocs চেক করুন। আপনাকে Math.log10() ব্যবহার করতে হবে। Math.log() e এর উপর ভিত্তি করে লগারিদম প্রদান করে
যোগ লেখক a_horse_with_no_name, উৎস
@ ইইস: কিন্তু মূল সূত্র লগ 10 ব্যবহার করে (যদিও আমি জানি না যে এটি সঠিক কিনা)।
যোগ লেখক a_horse_with_no_name, উৎস
@ ইইস: কিন্তু মূল সূত্র লগ 10 ব্যবহার করে (যদিও আমি জানি না যে এটি সঠিক কিনা)।
যোগ লেখক 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, উৎস
@ aa_horse_with_no_name এটি যদিও ফলাফলকে প্রভাবিত করবে না
যোগ লেখক eis, উৎস
@ aa_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
যোগ