2011-07-12 11 views
6

के साथ एक लॉग फ़ंक्शन बनाना मेरे पास एक सूत्र है और यह सूत्र एक कस्टम बेस के साथ लॉग फ़ंक्शन का उपयोग करता है उदाहरण के लिए बी के आधार और एक्स के मान के साथ लॉग करें। उद्देश्य-सी में, मुझे पता है कि लॉग फ़ंक्शंस हैं जो किसी आधार के आधार पर गणना करते हैं और 2 या 10 के आधार पर गणना करते हैं।कस्टम बेस

क्या कोई ऐसा फ़ंक्शन है जिसमें कस्टम/वेरिएबल बेस के साथ लॉग फ़ंक्शन की गणना करने की क्षमता है? या शायद इस सूत्र को पूरा करने का एक वैकल्पिक तरीका है।

मेरे सूत्र का मूल विचार यह लॉग है (1 + 0.02) (1.26825) (1 + 0.02 आधार है)। यह 12.000 के बराबर होना चाहिए।

उत्तर

14
इस तरह

:

double logWithBase(double base, double x) { 
    return log(x)/log(base); 
} 
+0

धन्यवाद एक टन है कि पूरी तरह से काम किया –

1

आप logbx = logcx/logcb, जहां इस तरह के c10 या e के रूप में अधिक आसानी से उपलब्ध ठिकानों में से एक है के साथ मनमाना लघुगणक की गणना कर सकते हैं।

आपके विशेष उदाहरण के लिए, loge1.26825 = 0.237637997 और loge1.02 = 0.019802627। यह 12.000 है (मेरे कैलकुलेटर की सटीकता की सीमाओं के भीतर): 0.237637997/0.019802627 = 12.000326876

वास्तव में, 1.0212 वास्तव में 1.268241795 है और, अगर आप कि मान का उपयोग, आप ज्यादा 12 की ओर बढ़ते जाएंगे:

  • loge1.268241795 = 0.237631528
  • loge1.02 = 0.019802627
  • 0.237631528/0.019802627 = 12.000000197
1

रे सही है, लेकिन यहाँ यह एक Obj सी विधि संशोधन है:

-(double) logWithBase:(double)base andNumber:(double)x { 
    return log(x)/log(base); 
} 
+1

यह एक उदाहरण विधि के रूप में इस के लिए कोई मतलब नहीं है, क्योंकि यह 'नहीं करता है एक उदाहरण का उपयोग नहीं करते हैं। आपके पास इसे MathUtils क्लास या क्लास विधि पर क्लास विधि के रूप में हो सकता है यदि आप वास्तव में ओबीजे-सी विधि चाहते हैं और न केवल एक सी फ़ंक्शन। –