怎样算次幂啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎样算次幂啊相关的知识,希望对你有一定的参考价值。

10的3.5次方
ln??
lg
这些都怎么算啊
用计算器怎么按??
具体的

幂的运算 一、教学内容: 1.同底数幂的乘法 2.幂的乘方与积的乘方 3.同底数幂的除法 二、技能要求: 掌握正整数幂的运算性质(同底数幂的乘法、幂的乘方、积的乘方、同底数幂的除法),能用字母式子和文字语言正确地表述这些性质,并能运用它们熟练地进行运算。 三、主要数学能力 1.通过幂的运算到多项式乘法的学习,初步理解“特殊——一般——特殊”的认识规律,发展思维能力。 2.在学习幂的运算性质、乘法法则的过程中,培养观察、综合、类比、归纳、抽象、概括等思维能力。 四、学习指导 1.同底数幂的乘法:am·an=am+n (m, n是自然数) 同底数幂的乘法法则是本章中的第一个幂的运算法则,也是整式乘法的主要依据之一。学习这个法则时应注意以下几个问题: (1)先弄清楚底数、指数、幂这三个基本概念的涵义。 (2)它的前提是“同底”,而且底可以是一个具体的数或字母,也可以是一个单项式或多项式,如: (2x+y)2·(2x+y)3=(2x+y)5,底数就是一个二项式(2x+y)。 (3)指数都是正整数 (4)这个法则可以推广到三个或三个以上的同底数幂相乘,即am·an·ap....=am+n+p+... (m, n, p都是自然数)。 (5)不要与整式加法相混淆。乘法是只要求底数相同则可用法则计算,即底数不变指数相加,如: x5·x4=x5+4=x9;而加法法则要求两个相同;底数相同且指数也必须相同,实际上是幂相同系数相加, 如-2x5+x5=(-2+1)x5=-x5,而x5+x4就不能合并。 例1.计算:(1) (- )(- )2(- )3 (2) -a4·(-a)3·(-a)5 解:(1) (- )(- )2(- )3 分析:①(- )就是(- )1,指数为1 =(- )1+2+3 ②底数为- ,不变。 =(- )6 ③指数相加1+2+3=6 = ④乘方时先定符号“+”,再计算 的6次幂 解:(2) -a4·(-a)3·(-a)5 分析:①-a4与(-a)3不是同底数幂 =-(-a)4·(-a)3·(-a)5 可利用-(-a)4=-a4变为同底数幂 =-(-a)4+3+5 ②本题也可作如下处理: =-(-a)12 -a4·(-a)3·(-a)5=-a4(-a3)(-a5) =-a12 =-(a4·a3·a5)=-a12 例2.计算(1) (x-y)3(y-x)(y-x)6 解:(x-y)3(y-x)(y-x)6 分析:(x-y)3与(y-x)不是同底数幂 =-(x-y)3(x-y)(x-y)6 可利用y-x=-(x-y), (y-x)6=(x-y)6 =-(x-y)3+1+6 变为(x-y)为底的同底数幂,再进行 =-(x-y)10 计算。 例3.计算:x5·xn-3·x4-3x2·xn·x4 解:x5·xn-3·x4-3x2·xn·x4 分析:①先做乘法再做减法 =x5+n-3+4-3x2+n+4 ②运算结果指数能合并的要合并 =x6+n-3x6+n ③3x2即为3·(x2) =(1-3)x6+n ④x6+n,与-3x6+n是同类项, =-2x6+n 合并时将系数进行运算(1-3)=-2 底数和指数不变。 2.幂的乘方(am)n=amn,与积的乘方(ab)n=anbn (1)幂的乘方,(am)n=amn,(m, n都为正整数)运用法则时注意以下以几点: ①幂的底数a可以是具体的数也可以是多项式。如[(x+y)2]3的底数为(x+y),是一个多项式, [(x+y)2]3=(x+y)6 ②要和同底数幂的乘法法则相区别,不要出现下面的错误。如: (a3)4=a7; [(-a)3]4=(-a)7; a3·a4=a12 (2)积的乘方(ab)n=anbn,(n为正整数)运用法则时注意以下几点: ①注意与前二个法则的区别:积的乘方等于将积的每个因式分别乘方(即转化成若干个幂的乘方),再把所得的幂相乘。 ②积的乘方可推广到3个以上因式的积的乘方,如:(-3a2b)3 如(a1·a2·……an)m=a1m·a2m·……anm 例4.计算:①(a2m)n ②(am+n)m ③(-x2yz3)3 ④-(ab)8 解:①(a2m)n 分析:①先确定是幂的乘方运算 =a(2m)n ②用法则底数a 不变指数2m和n相乘 =a2mn ②(am+n)m 分析:①底数a不变,指数(m+n)与m相乘 =a(m+n)m = ②运用乘法分配律进行指数运算。 参考技术A 科学计算器中直接按 ^ 这个就好了,如10^3.5就行了

还有一种计算器是按 xy(x的y次方,y在x的右上方) 就行了 答案补充 对数的话,只能算底数是10或e的,10 的就是lg(有些计算器是log),e的就是ln 答案补充 如: log10 3 ,就按lg 3(或者log3)

如:log10 100,就按lg100(或者log100)-----就等于2了嘛

如ln2 就按ln 2 就行了
参考技术B 按" ^ "

2的n次幂

问题描述

任何一个正整数都可以用2进制表示,例如:137的2进制表示为10001001。
  将这种2进制表示写成2的次幂的和的形式,令次幂高的排在前面,可得到如下表达式:137=2^7+2^3+2^0
  现在约定幂次用括号来表示,即a^b表示为a(b)
  此时,137可表示为:2(7)+2(3)+2(0)
  进一步:7=2^2+2+2^0 (2^1用2表示)
  3=2+2^0 
  所以最后137可表示为:2(2(2)+2+2(0))+2(2+2(0))+2(0)
  又如:1315=2^10+2^8+2^5+2+1
  所以1315最后可表示为:
  2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)
输入格式
  正整数(1<=n<=20000)
输出格式
  符合约定的n的0,2表示(在表示中不能有空格)
样例输入
137
样例输出
2(2(2)+2+2(0))+2(2+2(0))+2(0)
样例输入
1315
样例输出
2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0)


思路

  简单点的话,老老实实算二进制,再输出;这里涉及到每位二进制的指数也要一起分解,即在分解我们的数的途中还要分解,明显的递归。

  但是也可以不用算出二进制,使用位运算直接对二进制进行操作,这里用 137 来演示,具体如下:

  首先我们知道 137 的二进制为:10001001

1、获取最高位二进制

1 for(e=0, now=1; now <= n; now<<=1, e++);

 

这里的 e 表示当前二进制的位置,也就是我们需要的指数,初始化为 0 位;now 表示 2 的 n 次方,用来与我们输入的数 n 相比较,判断具体要移动多少位。这里我们循环结束后应该是这样子的:

010001001  原数 137

100000000  2 的 8 次方 256

此时, e = 8, now = 256

2、判断当前位是否是 0 位

这是大概最精彩的部分

1 for(;now>0;now>>=1, e--){
2         if(now & n){
      // 继续
3   }

 

之前我们已经知道了 now 和 n 的二进制,接下来,当循环条件满足时,我们就不断将二进制左移(e--),同时将 now 与 n 按位与,得到如下结果:

010001001  原数 137

100000000  2 的 8 次方 256

000000000  0

判断条件为假,继续下一次循环:

010001001  原数 137

010000000  2 的 7 次方 128,因为我们右移了一位

010000000  此时不为0

判断条件为真,继续执行下面的内容,直到把当前的二进制读取完。

下一次循环结果为

010001001  原数 137

001000000  2 的 6 次方 64

000000000  此时为0

一直下去......

3、判断输出

 1 void fun(int n)
 2 {
 3     int now, e;
 4     for(e=0, now=1; now <= n; now<<=1, e++);
 5     cout<<"2";
 6     for(;now>0;now>>=1, e--){
 7         if(now&n){
 8             if(now > 2){      // now 大于2,说明指数大于2,还要继续分解
 9                 cout<<"(";
10                 fun(e);       // 递归
11                 cout<<")";
12             }
13             if(now == 2);      // 等于2时题目叫我们什么也不做
14             else if(now == 1){    // 等于1是要输出指数0
15                 cout<<"(0)";
16             }
17             /*
18             当当前指数分解结束后,要用之前的数减去当前分解的指数,比            
19             如这里137 = 2^7 + 2^3 + 2^0,在分解完2^7后,继续分解 
20             2^3 + 2^0
21             */
22             n -= now;        
23             if(n){         // 当然,如果可以继续分解的话,否则这里条件判断是假
24                 cout<<"+2";
25             }
26         }
27     }
28 }                          

 

完整代码

技术分享图片
 1 #include<iostream> 
 2 
 3 using namespace std;
 4 
 5 void fun(int n)
 6 {
 7     int now, e;
 8     for(e=0, now=1; now <= n; now<<=1, e++);
 9     cout<<"2";
10     for(;now>0;now>>=1, e--){
11         if(now&n){
12             if(now > 2){
13                 cout<<"(";
14                 fun(e);
15                 cout<<")";
16             }
17             if(now == 2);
18             else if(now == 1){
19                 cout<<"(0)";
20             }
21             n -= now;
22             if(n){
23                 cout<<"+2";
24             }
25         }
26     }
27 }
28 int main()
29 {
30     int n = 0;
31     cin>>n;
32     fun(n);
33     
34     return 0;
35 }
View Code

 


 























以上是关于怎样算次幂啊的主要内容,如果未能解决你的问题,请参考以下文章

怎样把sql 2008数据库设置成可疑状态

Batchsize的大小怎样设置?Batchsize过大和过小有什么影响

matlab中怎样计算一个矩阵中每个数的平方?

matlab中怎样计算一个矩阵中每个数的平方

[面试试题]

Java中BigDecimal的8种舍入模式是怎样的