对数函数是指数函数的逆函数。以b为底的对数是b的幂必须乘以b以产生给定的数字。例如, 等于要产生8的2必须提高到的幂。显然,2 ^ 3 = 8因此 =3。通常,对于b> 0且b不等于1。
关于对数的事实:
- 由于各种有用的特性简化了冗长而繁琐的计算,对数很快被科学家采用。
- 以10为底的对数(即b = 10)被称为常用对数,在科学和工程学中有许多应用。
- 自然对数,是以e为底的对数。由于其更简单的导数,因此被用于数学和物理学。
- 二进制对数是一个以2为底的对数,通常用于计算机科学。
对数定律:
Laws | Description |
---|---|
+ | |
– | |
* | |
如何找到数字的对数?
天真的解决方案:
这个想法是创建一个函数来计算并返回 。例如,如果n = 64,则您的函数应返回6;如果n = 129,则您的函数应返回7。
C
// C program to find log(n) using Recursion
#include
unsigned int Log2n(unsigned int n)
{
return (n > 1) ? 1 + Log2n(n / 2) : 0;
}
int main()
{
unsigned int n = 32;
printf("%u", Log2n(n));
getchar();
return 0;
}
Java
// Java program to find log(n)
// using Recursion
class Gfg1 {
static int Log2n(int n)
{
return (n > 1) ? 1 + Log2n(n / 2) : 0;
}
// Driver Code
public static void main(String args[])
{
int n = 32;
System.out.println(Log2n(n));
}
}
Python3
# Python 3 program to
# find log(n) using Recursion
def Log2n(n):
return 1 + Log2n(n / 2) if (n > 1) else 0
# Driver code
n = 32
print(Log2n(n))
C#
// C# program to find log(n)
// using Recursion
using System;
class GFG {
static int Log2n(int n)
{
return (n > 1) ? 1 + Log2n(n / 2) : 0;
}
// Driver Code
public static void Main()
{
int n = 32;
Console.Write(Log2n(n));
}
}
PHP
1) ? 1 + Log2n($n / 2) : 0;
}
// Drive main
$n = 32;
echo Log2n($n);
?>
输出 :
5
时间复杂度: O(log n)
辅助空间:如果在递归过程中考虑堆栈大小,则为O(log n),否则为O(1)
高效的解决方案:
- 使用内置日志函数
对数的练习题:
问题1:在给定8 x + 1 – 8 x-1 = 63的方程式中找到x的值
解决方案:从等式中取8 x-1的公共点。
减少到
8 x-1 (8 2 – 1)= 63
8 x-1 = 1
因此,x – 1 = 0
x = 1
问题2:找到等式的x值。给定日志0.25 x = 16
解决方案:日志0.25 x = 16
可以写成
x =(0.25) 16
x =(1/4) 16
x = 4 -16
问题3:求解方程式log 12 1728 x log 9 6561
解决方案:可以写成
日志12 (12 3 )x日志9 (9 4 )
= 3log 12 12 x 4log 9 9
= 3 x 4 = 12
问题4:解决x
日志x 3 +日志x 9 +日志x 27 +日志x 81 = 10
解决方案:可以写成
对数x (3 x 9 x 27 x 81)= 10
对数x (3 1 x 3 2 x 3 3 x 3 4 )= 10
对数x (3 10 )= 10
10日志x 3 = 10
然后,x = 3
问题5:如果log(a + 3)+ log(a – 3)= 1 ,则a =?
解决方案:日志10 ((a + 3)(a – 3))= 1
对数10 (a 2 – 9)= 1
(a 2 – 9)= 10
2 = 19
a =√19
问题6:解决1 / log ab (abcd)+ 1 / log bc (abcd)+ 1 / log CD (abcd)+ 1 / log da (abcd)
解决方案:
=日志abcd (ab)+日志abcd (bc)+日志abcd (cd)+日志abcd (da)
= log abcd (ab * bc * cd * da)
=日志abcd (abcd) 2
= 2日志abcd (abcd)
= 2
问题7:如果xyz = 10,则求解log(x n y n / z n )+ log(y n z n / x n )+ log(z n x n / y n )
解决方案:
log(x n y n / z n * y n z n / x n * z n x n / y n )
= log x n y n z n
= log(xyz) n
=日志10 10 n
= n
问题8:查找(121/10) x = 3
解决方案:在两边都应用对数
对数(121/10) (121/10) x =对数(121/10) 3
x =(log 3)/(log 121 – log 10)
x =(对数3)/(2对数11 – 1)
问题9:求解log(2x 2 + 17)= log(x – 3) 2
解决方案:
log(2x 2 + 17)=对数(x 2 – 6x + 9)
2x 2 + 17 = x 2 – 6x + 9
x 2 + 6x + 8 = 0
x 2 + 4x + 2x + 8 = 0
x(x + 4)+ 2(x + 4)= 0
(x + 4)(x + 2)= 0
x = -4,-2
问题10: log 2 (33 – 3 x )= 10 log(5 – x) 。解决x。
解决方案:放x = 0
对数2 (33 – 1)= 10对数(5)
对数2 32 = 5
5 log 2 2 = 5
5 = 5
LHS = RHS
与对数有关的更多问题:
- 查找计算对数N所需的最小对数值
- 在给出x和y的x ^(y ^ 2)或y ^(x ^ 2)中找到最大值
- 打印数字的所有子字符串,无需任何转换
- 程序比较m ^ n和n ^ m
- 查找较大的x ^ y和y ^ x
关于对数的最新文章!