目录
- 1相关介绍
- 2定义
- 3定理
- 4大小比较法
- ▪计算比较法
- ▪底数比较法
- ▪指数比较法
- ▪求差比较法
- ▪求商比较法
- ▪乘方比较法
- ▪定值比较法
- 5编程实现
- ▪常规算法
- ▪快速算法
>相关介绍
数学中的“幂”,是“幂”这个字面意思的引申,“幂”原指盖东西布巾,数学中“幂”是乘方的结果,而乘方的表示是通过在一个数字上加上标的形式来实现的,故这就像在一个数上“盖上了一头巾”,在现实中盖头巾又有升级的意思,所以把乘方叫做幂正好契合了数学中指数级数快速增长含义,形式上也很契合,所以叫做幂。
幂不符合结合律和交换律。
因为十的次方很易计算,只需在后加零即可,所以
科学记数法借助此简化记录数的方式;二的次方在
计算机科学中很有用。
>定义
幂指乘方运算的结果。
指
个
相乘(
)。把
看作乘方的结果,叫做
的
次幂。
其中,n称为底数,m称为指数(写成上标)。当不能用上标时,例如在编程语言或电子邮件中,通常写成n^m或n**m,亦可以用
高德纳箭号表示法,写成
,读作“n的m次方”或者n的m次幂。
当指数为1时,通常不写出来,因为那和底的数值一样;指数为2、3时,可以读作“n的平方”、“n的立方”。
的意义亦可视为
︰起始值1(乘法的单位元)乘底指数这么多次。这样定义了后,很易想到如何一般化指数0和负数的情况︰除了0之外所有数的零次方都是1,即
;幂的指数是负数时,等于
。
幂不符合结合律和交换律。
>定理
>大小比较法
>计算比较法
先通过幂的计算,然后根据结果的大小,来进行比较的。
>底数比较法
在指数相同的情况下,通过比较底数的大小,来确定两个幂的大小。
>指数比较法
在底数相同的情况下,通过比较指数的大小,来确定两个幂的大小。
>求差比较法
将两个幂相减,根据其差与0的比较情况,来确定两个幂的大小。
>求商比较法
将两个幂相除,然后通过商与1的大小关系,比较两个幂的大小。
>乘方比较法
将两个幂乘方后化为同指数幂,通过进行比较结果,来确定两个幂的大小。
>定值比较法
通过选一个与两个幂中一个幂相接近的幂作定值,然后用两个幂与所选取的定值相比较,由此来确定两个幂的大小。
>编程实现
>常规算法
/*循环法
输入:底数(unsigned a)、指数(undigned b)
输出:结果(unsigned)
*/
unsigned mi(unsigned a , unsigned b)
{
unsigned result = 1 ;
for (i = 1 ; i <= b ; i++)
result *= a;
return result;
}
/*迭代法
输入:底数(unsigned a)、指数(unsigned b)
输出:结果(unsigned)
*/
unsigned mi(unsigned a , unsigned b)
{
if (!b)
return 1;
return a * mi(a , b - 1);
}
>快速算法
/*快速计算的迭代法
输入:底数(unsigned a)、指数(unsigned b)
输出:结果(unsigned)*/
unsigned mi(unsigned a , unsigned b)
{
if (!b)
return 1;
if (b & 1)
return a * mi(a * a , b >> 1);
return mi(a * a , b >> 1);
}