求证: n 项奇数的和“1 + 3 + 5 + + (2n-1)”,是 n^2。
证明: 这是等差数列的和。
等差数列之和=(首项+末项)× (项数 / 2)
即: 1 + 3 + 5 + + (2n-1) = (1 + (2n-1)) (n/2)
= n^2
编程思路:
从一个数字 M (包含一个完全平方数 N + e) 中,依次减去:1、3、5、,直到不够减为止,减去了多少次?平方根就是几。
程序的核心部分如下:
MOV AX,[data];取来M
MOV BX,1 ;首项为1
MOV CX,1
_S_LOOP:
SUB AX,BX
JC_END ;有借位为止
INC BX;修改为3、5、7
INC BX
INC CX;n加1
JMP _S_LOOP ;不停的减
_END:
MOV [root],CX;保存n
就这些。
这种求平方根的方法,效率很高,远远高于牛顿迭代法。
C#如何开平方根?
MathPow 方法
返回指定数字的指定次幂。
命名空间:System
程序集:mscorlib(在 mscorlibdll 中)
语法
public static double Pow (
double x,
double y
)
参数
x 要乘幂的双精度浮点数。
y 指定幂的双精度浮点数。
返回值
数字 x 的 y 次幂。
在类库的SystemMath名空间有Math类,处理许多数学运算:
开平方: MathSqrt()
开任何方:MathPow()
下面是一个对变量x *** 作的代码:
double result;
开平方
result=Pow(x,05);
开立方
result=Pow(x,1/3);
如何开平方根1.从个位起向左每隔两位为一节,若带有小数从小数点起向右每隔两位一节,用“,”号将各节分开;
2.求不大于左边第一节数的平方根,为平方根最高上的数;
3.从左边第一节数里减去求得的最高位上的数的平方,在它们的差的右边写上第二节数作为第一个余数;
4.把商的最高位上的数乘20去试除第一个余数,所得的是整数作试商(如果这个最大整数大于或等于10,就用9或8作试商);
5.用最高位的数乘以20加上试商再乘以试商。如果所得的积小于或等于余数,这个试商就是平方根的第二位数;如果所得的积大于余数,就把试商逐次减小再试,直到积小于或等于余数为止;
6.用同样的方法,继续求平方根的其他各位上的数。
例:
2 4 4 9 4 8
/------------------
600'00'00'00'00
4
----
200
176
-------
2400
1936
------
46400
44001
------
239900
195936
-------
4396400
3919104
--------
477296
288如何开平方根288=1442=12122
根号下288=12倍的根号2
55225如何开平方根用解方程先估算大致230230=52900
55225=230230+2325=(230+5)(230+5)-10230-25+2325=235235,即平方根为±235
如何给小数开平方根
首先把小数化成分数,然后对分数开平方根,这样便于理解。
289开平方根是17
怎样开平方根?开方的计算步骤
1.将被开方数的整数部分从个位起向左每隔两位划为一段,用撇号分开(竖式中的11’56),分成几段,表示所求平方根是几位数; 2.根据左边第一段里的数,求得平方根的最高位上的数(竖式中的3); 3.从第一段的数减去最高位上数的平方,在它们的差的右边写上第二段数组成第一个余数(竖式中的256); 4.把求得的最高位数乘以20去试除第一个余数,所得的最大整数作为试商(20×3除256,所得的最大整数是 4,即试商是4); 5.用所求的平方根的最高位数的20倍加上这个试商再乘以试商.如果所得的积小于或等于余数,试商就是平方根的第二位数;如果所得的积大于余数,就把试商减小再试(竖式中(20×3+4)×4=256,说明试商4就是平方根的第二位数); 6.用同样的方法,继续求平方根的其他各位上的数. 如遇开不尽的情况,可根据所要求的精确度求出它的近似值.例如求 的近似值(精确到001),可列出上面右边的竖式,并根据这个竖式得到 笔算开平方运算较繁,在实际中直接应用较少,但用这个方法可求出一个数的平方根的具有任意精确度的近似值. 实例 例如,A=5: 5介于2的平方至3的平方;之间。我们取初始值21,22,23,24,25,26,27,28,29都可以,我们最好取 中间值25。 第一步:25+(5/25-25)1/2=22; 即5/25=2,2-25=-05,-05×1/2=-025,25+(-025)=225,取2位数22。 第二步:22+(5/22-22)1/2=223; 即5/22=227272,227272-22=-007272,-007272×1/2=-003636,22+003636=223。取3位数223。 第三步:223+(5/223-223)1/2=2236。 即5/223=22421525,,22421525-223=00121525,,00121525×1/2=000607,,223+0006=2236,取4位数。 每一步多取一位数。这个方法又叫反馈开方,即使你输入一个错误的数值,也没有关系,输出值会自动调节,接近准确值。 例如A=200 200介如10的平方---20的平方之间。初始值可以取11,12,13,14,15,16,17,18,19。我们去15 15+(200/15-15)1/2=14。取19也一样得出14。:19+(200/19-19)1/2=14。 14+(200/14-14)1/2=141。 141+(200/141-141)1/2=1414 关于这个方法的说明;1980年王晓明利用牛顿二项式推出这个公式,找到江西师范大学,一位教授觉得面熟,当场又推演一遍,与牛顿切线法一样。辽宁鞍山的傅钟鹏在他的《数学雅典娜》一书中介绍,天津新蕾出版社。由于是牛顿的公式,作者王晓明不敢贪天之功。所以傅钟鹏老师在文章介绍也明确说明是由牛顿切线法推出。
3025开平方根算式3025开平方根=55
请采纳
开平方根,高手来!65960082389601515053780338746145
在<mathh>中是关于数学计算的。开方有个函数 sqrt(); 绝对值abs(); fabs();sin();cos();主要参数类型 一般是整数或者浮点数 mathh数学函数库,一些数学计算的公式的具体实现是放在mathh里,具体有:
1 三角函数
double sin (double);
double cos (double);
double tan (double);
2 反三角函数
double asin (double); 结果介于[-PI/2, PI/2]
double acos (double); 结果介于[0, PI]
double atan (double); 反正切(主值), 结果介于[-PI/2, PI/2]
double atan2 (double, double); 反正切(整圆值), 结果介于[-PI/2, PI/2]
3 双曲三角函数
double sinh (double);
double cosh (double);
double tanh (double);
4 指数与对数
double exp (double);
double sqrt (double);
double log (double); 以e为底的对数
double log10 (double);
double pow(double x, double y)//计算以x为底数的y次幂
5 取整
double ceil (double); 取上整
double floor (double); 取下整
6 绝对值
double fabs (double);
double cabs(struct complex znum) //求复数的绝对值
7 标准化浮点数
double frexp (double f, int p); 标准化浮点数, f = x 2^p, 已知f求x, p ( x介于[05, 1] )
double ldexp (double x, int p); 与frexp相反, 已知x, p求f
8 取整与取余
double modf (double, double); 将参数的整数部分通过指针回传, 返回小数部分
double fmod (double, double); 返回两参数相除的余数
9其他
double hypot(double x, double y);//已知直角三角形两个直角边长度,求斜边长度
double ldexp(double x, int exponent);//计算x(2的exponent次幂)
double poly(double x, int degree, double coeffs [] )//计算多项式
nt matherr(struct exception e)//数学错误计算处理程序
source: 《C & C++ Code Capsules》
开方,比如开 2 次方。。可以看成是 1/2 次方。。
C语言里面的指数函数。。是用 pow(x, y)(在头文件 mathh 里面)表示的。。即 x 的 y 次方。。
所以说,如果要表示开方的话。。
float n = 2;
pow(x, 10/n);//就可以表示 x 开 n 次方,这里 n 为 2,表示 开平方。。
若有不明白的您可以再问哈。。
对于任意实数的开方,可以使用切线法得到其任意精度的结果,切线法的迭代公式为:
取任意初始值,以上迭代序列将会收敛:
实际应用中一般取初始值为稍微大的实数,这样可以加快序列的收敛速度。
c语言代码如下: // 2015-12-24// By: ChenYu#include mathh#include stdioh#define ABS(a) ((a)<0-(a):(a))#ifdef _WIN32 typedef unsigned __int64 uint64;#else typedef unsigned long long uint64;#endif// calculate a approximate valuestatic double calcInitRoot(double x, int n){ const uint64 exptMask=((uint64)1<<11)-1; const uint64 fracMask=((uint64)1<<52)-1; uint64 xInt=(uint64)&x; int xExpt=(int)((xInt>>52)&exptMask)-1023; xInt=((uint64)((xExpt+1024n-1)/n)<<52)+(xInt&fracMask)/n; return (double)&xInt;}double calcRoot(double x, int n){ int i, j, s=1-((x<0)<<(n&1)); double a=ABS(x); double x1, x0=calcInitRoot(a, n); double err=x01e-14; if(x==0) return 0; for(i=1; i<50; i++) { double xn=1; for(j=0; j<n-1; j++) xn=x0; x1=((n-1)x0xn+a)/(xnn);// printf(x%d=%14f\n, i, x1); if(ABS(x1-x0)<=err) break; x0=x1; } return sx1;}void main(){ double x=-31141592653589793; int n=11; double y=calcRoot(x, n); printf(root(%g,%d)=%+14f\n, x, n, y); printf(root(%g,%d)=%+14f\n, x, n, pow(ABS(x), 10/n));}
26
c语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑 *** 作的符号。c语言有三大运算符:算术、关系与逻辑、位 *** 作。另外,
c还有一些特殊的运算符,用于完成一些特殊的任务。
261
算术运算符
表2
-
5列出了c语言中允许的算术运算符。在c语言中,运算符“
+”、“-”、“”和“
/”的用法与大多数计算机语言的相同,几乎可用于所有c语言内定义的数据类型。当“
/”被用于整数或字符时,结果取整。例如,在整数除法中,
1
0
/
3
=
3。
一元减法的实际效果等于用-
1乘单个 *** 作数,即任何数值前放置减号将改变其符号。模运算符“%”在c语言中也同它在其它语言中的用法相同。切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。
表2-5
算术运算符
运算符
作用
运算符
作用
-
减法,也是一元减法
%
模运算
+
加法
--
自减(减1)
乘法
++
自增(增1)
/
除法
下面是说明%用法的程序段。
int
x,y;
x
=
10;
y
=
3;
printf("%d",x/y);
/
显示3
/
printf("%d",x%y)
;
/
显示1
,整数除法的余数
/
x
=
1
;
y
=
2
;
printf("%d,%d",x/y,x%y)
;
/
显示0,1
/
最后一行打印一个0和一个1,因为1
/
2整除时为0,余数为1,故1
%
2取余数1。
262
自增和自减
c语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符,
+
+和-
-。运算符“
+
+”是 *** 作数加1,而“-
-”是 *** 作数减1,换句话说:x
=
x
+
1
;
同+
+
x
;
x
=
x
-
1
;
同-
-
x
;
自增和自减运算符可用在 *** 作数之前,也可放在其后,例如:
x
=
x
+
1;可写成+
+
x;或x
+
+;但在表达式中这两种用法是有区别的。自增或自减运算符在 *** 作数之前,
c语言在引用 *** 作数之前就先执行加1或减1 *** 作;运算符在 *** 作数之后,
c语言就先引用 *** 作数的值,而后再进行加1或减1 *** 作。请看下例:
x
=
1
0;
y
=
++x;
此时,y
=
11。如果程序改为:
x
=
10
;
y
=
x++
;
则y
=
10。在这两种情况下,
x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。
在大多数c编译程序中,为自增和自减 *** 作生成的程序代码比等价的赋值语句生成的代码要快得多,所以尽可能采用加1或减1运算符是一种好的选择。
下面是算术运算符的优先级:
最高
++、--
-(一元减)
、/、%
最低
+、-
编译程序对同级运算符按从左到右的顺序进行计算。当然,括号可改变计算顺序。c语言处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高
26
运算符
C语言的内部运算符很丰富,运算符是告诉编译程序执行特定算术或逻辑 *** 作的符号。C语言有三大运算符:算术、关系与逻辑、位 *** 作。另外,
C还有一些特殊的运算符,用于完成一些特殊的任务。
261
算术运算符
表2
-
5列出了C语言中允许的算术运算符。在C语言中,运算符“
+”、“-”、“”和“
/”的用法与大多数计算机语言的相同,几乎可用于所有C语言内定义的数据类型。当“
/”被用于整数或字符时,结果取整。例如,在整数除法中,
1
0
/
3
=
3。
一元减法的实际效果等于用-
1乘单个 *** 作数,即任何数值前放置减号将改变其符号。模运算符“%”在C语言中也同它在其它语言中的用法相同。切记,模运算取整数除法的余数,所以“%”不能用于float和double类型。
表2-5
算术运算符
运算符
作用
运算符
作用
-
减法,也是一元减法
%
模运算
+
加法
--
自减(减1)
乘法
++
自增(增1)
/
除法
下面是说明%用法的程序段。
int
x,y;
x
=
10;
y
=
3;
printf("%d",x/y);
/
显示3
/
printf("%d",x%y)
;
/
显示1
,整数除法的余数
/
x
=
1
;
y
=
2
;
printf("%d,%d",x/y,x%y)
;
/
显示0,1
/
最后一行打印一个0和一个1,因为1
/
2整除时为0,余数为1,故1
%
2取余数1。
262
自增和自减
C语言中有两个很有用的运算符,通常在其它计算机语言中是找不到它们的—自增和自减运算符,
+
+和-
-。运算符“
+
+”是 *** 作数加1,而“-
-”是 *** 作数减1,换句话说:x
=
x
+
1
;
同+
+
x
;
x
=
x
-
1
;
同-
-
x
;
自增和自减运算符可用在 *** 作数之前,也可放在其后,例如:
x
=
x
+
1;可写成+
+
x;或x
+
+;但在表达式中这两种用法是有区别的。自增或自减运算符在 *** 作数之前,
C语言在引用 *** 作数之前就先执行加1或减1 *** 作;运算符在 *** 作数之后,
C语言就先引用 *** 作数的值,而后再进行加1或减1 *** 作。请看下例:
x
=
1
0;
y
=
++x;
此时,y
=
11。如果程序改为:
x
=
10
;
y
=
x++
;
则y
=
10。在这两种情况下,
x都被置为11,但区别在于设置的时刻,这种对自增和自减发生时刻的控制是非常有用的。
在大多数C编译程序中,为自增和自减 *** 作生成的程序代码比等价的赋值语句生成的代码要快得多,所以尽可能采用加1或减1运算符是一种好的选择。
下面是算术运算符的优先级:
最高
++、--
-(一元减)
、/、%
最低
+、-
编译程序对同级运算符按从左到右的顺序进行计算。当然,括号可改变计算顺序。C语言处理括号的方法与几乎所有的计算机语言相同:强迫某个运算或某组运算的优先级升高
以上就是关于汇编语言开方程序全部的内容,包括:汇编语言开方程序、C#如何开平方根、c语言中的开方怎么解决等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)