📜  在扩展的帮助下找到ln(X)和log10X

📅  最后修改于: 2021-04-29 08:59:01             🧑  作者: Mango

给定正数x,任务是查找自然对数(ln)并借助扩展将其记录到该数的基数10(对数10 )。

例子:

Input: x = 5
Output: ln 5.000 = 1.609
        log10 5.000 = 0.699

Input: x = 10
Output: ln 10.000 = 2.303
        log10 10.000 = 1.000

方法:

  1. x(ln x)的自然对数的展开式为:

  2. 因此,本系列可以总结为:
  3. 因此,可以使一个函数来评估1≤的序列的第n个项。 x≤ ñ
  4. 现在要计算log 10 x ,可以使用以下公式:

下面是上述方法的实现:

C++
// CPP code to Find the ln x and
// log10 x with the help of expansion
  
#include 
#include 
#include 
  
using namespace std;
  
// Function to calculate ln x using expansion
double calculateLnx(double n)
{
  
    double num, mul, cal, sum = 0;
    num = (n - 1) / (n + 1);
  
    // terminating value of the loop
    // can be increased to improve the precision
    for (int i = 1; i <= 1000; i++) {
        mul = (2 * i) - 1;
        cal = pow(num, mul);
        cal = cal / mul;
        sum = sum + cal;
    }
    sum = 2 * sum;
    return sum;
}
  
// Function to calculate log10 x
double calculateLogx(double lnx)
{
    return (lnx / 2.303);
}
  
// Driver Code
int main()
{
  
    double lnx, logx, n = 5;
    lnx = calculateLnx(n);
    logx = calculateLogx(lnx);
  
    // setprecision(3) is used to display
    // the output up to 3 decimal places
  
    cout << fixed << setprecision(3)
         << "ln " << n << " = "
         << lnx << endl;
    cout << fixed << setprecision(3)
         << "log10 " << n << " = "
         << logx << endl;
}


Java
// Java code to Find the ln x and
// log10 x with the help of expansion
import java.io.*;
  
class GFG 
{
      
// Function to calculate ln x using expansion
static double calculateLnx(double n)
{
    double num, mul, cal, sum = 0;
    num = (n - 1) / (n + 1);
  
    // terminating value of the loop
    // can be increased to improve the precision
    for (int i = 1; i <= 1000; i++) 
    {
        mul = (2 * i) - 1;
        cal = Math.pow(num, mul);
        cal = cal / mul;
        sum = sum + cal;
    }
    sum = 2 * sum;
    return sum;
}
  
// Function to calculate log10 x
static double calculateLogx(double lnx)
{
    return (lnx / 2.303);
}
  
// Driver Code
public static void main (String[] args) 
{
    double lnx, logx, n = 5;
    lnx = calculateLnx(n);
    logx = calculateLogx(lnx);
      
    // setprecision(3) is used to display
    // the output up to 3 decimal places
      
    System.out.println ("ln " + n + " = " + lnx );
    System.out.println ("log10 " + n + " = "+ logx );
}
}
  
// This code is contributed by ajit


Python3
# Python 3 code to Find the ln x and
# log10 x with the help of expansion
# Function to calculate ln x using expansion
from math import pow
def calculateLnx(n):
    sum = 0
    num = (n - 1) / (n + 1)
  
    # terminating value of the loop
    # can be increased to improve the precision
    for i in range(1, 1001, 1):
        mul = (2 * i) - 1
        cal = pow(num, mul)
        cal = cal / mul
        sum = sum + cal
  
    sum = 2 * sum
    return sum
  
# Function to calculate log10 x
def calculateLogx(lnx):
    return (lnx / 2.303)
  
# Driver Code
if __name__ == '__main__':
    n = 5
    lnx = calculateLnx(n)
    logx = calculateLogx(lnx)
  
    # setprecision(3) is used to display
    # the output up to 3 decimal places
  
    print("ln", "{0:.3f}".format(n), 
           "=", "{0:.3f}".format(lnx))
    print("log10", "{0:.3f}".format(n), 
              "=", "{0:.3f}".format(logx))
      
# This code is contributed by
# Surendra_Gangwar


C#
// C# code to Find the ln x and
// log10 x with the help of expansion
using System;
      
class GFG 
{
      
// Function to calculate ln x using expansion
static double calculateLnx(double n)
{
    double num, mul, cal, sum = 0;
    num = (n - 1) / (n + 1);
  
    // terminating value of the loop
    // can be increased to improve the precision
    for (int i = 1; i <= 1000; i++) 
    {
        mul = (2 * i) - 1;
        cal = Math.Pow(num, mul);
        cal = cal / mul;
        sum = sum + cal;
    }
    sum = 2 * sum;
    return sum;
}
  
// Function to calculate log10 x
static double calculateLogx(double lnx)
{
    return (lnx / 2.303);
}
  
// Driver Code
public static void Main (String[] args) 
{
    double lnx, logx, n = 5;
    lnx = calculateLnx(n);
    logx = calculateLogx(lnx);
      
    // setprecision(3) is used to display
    // the output up to 3 decimal places
      
    Console.WriteLine("ln " + n + " = " + lnx );
    Console.WriteLine("log10 " + n + " = "+ logx );
}
}
  
// This code is contributed by Princi Singh


输出:
ln 5.000 = 1.609
log10 5.000 = 0.699