আমার log
জাভাস্ক্রিপ্টের জন্য একটি ফাংশন প্রয়োজন , তবে এটি বেস 10 হওয়া দরকার আমি এর জন্য কোনও তালিকা দেখতে পাচ্ছি না, তাই আমি ধরে নিচ্ছি এটি সম্ভব নয়। এর বাইরে কোনও গণিত উইজার্ড আছে কি যারা এর সমাধান জানতে পারে?
আমার log
জাভাস্ক্রিপ্টের জন্য একটি ফাংশন প্রয়োজন , তবে এটি বেস 10 হওয়া দরকার আমি এর জন্য কোনও তালিকা দেখতে পাচ্ছি না, তাই আমি ধরে নিচ্ছি এটি সম্ভব নয়। এর বাইরে কোনও গণিত উইজার্ড আছে কি যারা এর সমাধান জানতে পারে?
উত্তর:
"বেসের পরিবর্তন" সূত্র / পরিচয়
বেস 10 তে লগারিদমের সংখ্যাসূচক মানটি নিম্নলিখিত পরিচয় দিয়ে গণনা করা যেতে পারে।
যেহেতু Math.log(x)
জাভাস্ক্রিপ্টে প্রাকৃতিক লোগারিদমটি (এলএন (এক্স) এরx
সমান ) ফেরত এসেছে , বেস 10 এর জন্য আপনি ভাগ করতে পারেন Math.log(10)
( এলএন (10) এর মতো ):
function log10(val) {
return Math.log(val) / Math.LN10;
}
Math.LN10
এর জন্য একটি অন্তর্নির্মিত প্রাক্পম্পিউটেড ধ্রুবক Math.log(10)
, তাই এই ফাংশনটি মূলত:
function log10(val) {
return Math.log(val) / Math.log(10);
}
return Math.log(n) / Math.log(base);
আপনি কেবল আপনার মানটির লগারিদম এবং পছন্দসই বেসের লগারিদমকে বিভক্ত করতে পারেন, এছাড়াও আপনি Math.log
একটি alচ্ছিক বেস আর্গুমেন্ট গ্রহণ করার পদ্ধতিটি ওভাররাইড করতে পারেন :
Math.log = (function() {
var log = Math.log;
return function(n, base) {
return log(n)/(base ? log(base) : 1);
};
})();
Math.log(5, 10);
এখানে উত্তর সুস্পষ্ট নির্ভুলতার সমস্যা সৃষ্টি করবে এবং কিছু ব্যবহারের ক্ষেত্রে এটি নির্ভরযোগ্য নয়
> Math.log(10)/Math.LN10
1
> Math.log(100)/Math.LN10
2
> Math.log(1000)/Math.LN10
2.9999999999999996
> Math.log(10000)/Math.LN10
4
(Math.round(Math.log(1000) / Math.LN10 * 1e6) / 1e6)
const logBase = (n, base) => Math.log(n) / Math.log(base);
Math.log10 = function(n) {
return (Math.log(n)) / (Math.log(10));
}
তাহলে আপনি করতে পারেন
Math.log10(your_number);
দ্রষ্টব্য: প্রথমদিকে আমি এটি করার জন্য ভেবেছিলাম Math.prototype.log10 = ...
, তবে ব্যবহারকারী সিএমএস উল্লেখ করেছিলেন যে ম্যাথ এইভাবে কাজ করে না, তাই আমি .prototype
অংশটি সম্পাদনা করেছি ।
.prototype
অংশটি সরান ;)
এফএফ 25+ একটি Math.log10
পদ্ধতি সমর্থন করে । আপনি পলিফিল ব্যবহার করতে পারেন:
if (!Math.log10) Math.log10 = function(t){ return Math.log(t)/Math.LN10; };
MDN সমর্থিত ব্রাউজারগুলি তালিকাভুক্ত করে ।
ডেস্কটপ ব্রাউজারগুলি
Chrome Firefox (Gecko) Internet Explorer Opera Safari 38 25 (25) Not supported 25 7.1
মোবাইল ব্রাউজারগুলি
Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile Not supported Not supported 25.0 (25) Not supported Not supported iOS 8
Math.log10(x)
! 😁
শীর্ষ উত্তর একটি অবাধ বেস জন্য জরিমানা, কিন্তু প্রশ্ন লগ বেস 10 সংক্রান্ত হয়, এবং Math.log10(x)
হয়েছে 2015. যেহেতু সব ব্রাউজার জুড়ে মান *
* আইই ব্যতীত, যদি এটি কোনও কারণে আপনার পক্ষে গুরুত্বপূর্ণ।
আপনার যদি একটি সংখ্যা x থাকে, তবে এর ব্যবহারটি Math.log(x)
মূলত lnx হবে।
এটিকে ই ছাড়া অন্য বেসে রূপান্তর করতে, আপনি নিম্নলিখিত ফাংশনটি ব্যবহার করতে পারেন:
function(x){ return Math.log(x)/Math.log(10); }
বেস 10 ব্যবহারের জন্য Math.log10()
।
এখানে ডক্স দেখুন: https://developer.mozilla.org/en-US/docs/Web/ জাভা স্ক্রিপ্ট / রেফারেন্স / গ্লোবাল_অবজেক্টস / ম্যাথ / ব্লগ 10