复数的开方运算

2024-09-19

复数的开方运算(精选3篇)

复数的开方运算 篇1

0 引言

在做超长数运算时, 数据的存储往往选用链表或数组, 由于运算的实现比较繁琐, 根据需要, 又常把问题分解为:有符号超长数据运算、无符号超长数运算、有符号超长整数运算、无符号超长整数运算等, 而运算的实现又可分为基本运算、混合运算、特定问题运算等。这其中最基本的就是无符号超长整数的基本运算, 也就是无符号超长整数的加、减、乘、除、开方运算。在基本运算中, 加、减、乘运算又是最基本的运算, 除法和开方运算都是运用这3种运算来完成的。笔者以数组为存储结构, 模仿手工计算的过程, 实现了基于ASP的无符号超长整数的加、减、乘、除及开方的运算。基于ASP的好处是:无符号超长整数的运算是在局域网中的服务器上实现的, 与计算提交者的设备无关, 充分利用了网络服务器的处理能力, 也体现了集中计算的思想, 特别适合教学及演示。

本文仅讨论无符号超长整数的除法运算和开方运算的实现, 无符号超长整数的加、减、乘运算的实现在文献[1]中有很详细的讨论。

1 手工计算过程的模仿

用计算机进行无符号超长整数的计算, 在算法上仍然是模仿手工计算的流程。计算过程是:

1.1 除法

设被除数为x () , 除数为y () , 商为q () , 商的初始项数为0, 余数为r () ;

(1) 根据y () 的长度, 从x () 的高端截取相应长度的片段, 作为r () 初始值;

(2) k=1;

(3) 计算k*y () ;

(4) 计算r () -k*y () , 若r () -k*y () >0, 则k=k+1, 返回3) ;否则, q () 的项数加1, k-1作为新加项的值, r () -k*y () 逐项向高端移1位, 再从被除数的余下部分的最高端截取一位, 作为r () -k*y () 的最低位, 生成新的r () ;

(5) 重复步骤2) -4) , 直到被除数全部取完。

1.2 开方

设被开方数为x () , 商为q () , 商的初始项数为0, 余数为r () ;

(1) 若x () 位数是偶数, 则取其高端的第1、2位作为r () 的初值, 否则取其高端的第1位作为r () 的初值;

(2) k=1;

(3) 计算k^2;

(4) 计算r () -k^2, 若r () -k^2>0, 则k=k+1, 返回3) ;否则, q () 的项数加1, k-1作为新加项的值, r () -k^2逐项向高端移2位, 再从被开方数余下部分的最高端取两位作为下一段作为r () -k^2的最低两位, 形成新的r () ;

(5) k=1;

(6) 计算 (q () *20+k) *k;

(7) 计算r () - (q () *20+k) *k, 若r () - (q () *20+k) *k>0, 则k=k+1, 返回6) ;否则, q () 的项数加1, k-1作为新加项的值;8) 重复步骤2) -7) , 直到被开方数全部取完。

1.3 处理步骤

从以上的计算过程可以看出, 除法运算和开方运算的方法基本上是一样的, 都有试商过程, 主要部分都只用到了一位数与超长数相乘的运算和超长数减法运算。由此可以得出计算运算的处理步骤: (1) 定义变量; (2) 接收字符串形式的数据; (3) 计算各操作数的位数; (4) 确定位数较大者; (5) 重新定义数组的维数; (6) 将字符串数据转换成数组; (7) 执行除法/开方计算; (8) 将计算结果转换成字符串; (9) 输出计算结果。

2 基本算法

除法和开方计算所用到的基本算法十分简单, 只有两个, 一个是一位数与无符号超长整数的乘法, 另一个是无符号超长整数的减法。

2.1 一位数与无符号超长整数的乘法

设:x () 为无符号超长整数, n是它的位数, k是大于等于1小于等于9的正整数, pro () 是积。

2.2 无符号超长整数的减法

设:x () 为被减数, y () 为减数, n为y () 的位数, dif () 为差, borrow为借位值。

3 除法运算

设:x为被除数, y为除数, 则len (x) 和len (y) 分别是它们的位数。

对计算中要用到的变量进行定义:

设:x () 、y () 分别是x、y的数组形式;q () 是除法计算得到的商式, p是商式的位数, k是每一次试商的取值, 显然有1≤k≤9, r () 是计算每一位商后得到的余数。除法计算分两种情况, 一是被除数的位数小于除数的位数, 二是除数的位数大于等于除数的位数, 这可用一个分支结构解决:

整个多位数除法计算分两步, 第一步是首位商计算, 这是因为计算首位商时, 要一次从被除数的高端截取下len (y) 长度的片段作为r () 的初值;第二步是其余位商的计算, 其余位商计算时, 每次从被除数的剩余部分的高端取一位, 加到r () 的低端。

首位商计算:

其余位商计算:这个计算是一个嵌套的循环, 外层循环的控制变量是len (x) , 当len (x) =0时循环结束。内层循环的控制变量是借位值borrow, 当borrow≠0时循环结束。

4 开方运算

开方运算的步骤与与除法一样, 即:首位商计算、其余位商计算。计算之前要将被开方数从低到高按每两位一段进行分段。

开方计算也只用到常数与无符号超长整数相乘和无符号超长整数减法, 只是由于开方运算每一轮计算商时, 是从被开方数剩余部分的高端取两位加到余式的低端, 所以常数与无符号超长整数的乘法要加上一条n=n+1语句。

(1) 首位商计算:即找一个大于等于1, 小于等于9的整数k, 使k的乘方不大于被开方数的最高段。

(2) 其余位商的计算:这个计算比较麻烦, 也是两层循环, 外循环的控制变量是被开方数的位数n, 当n=0时循环结束;内循环的控制变量是借位值borrow, 当borrow≠0时循环结束。内循环体是整个计算的主要部分, 可分成两段:一是计算试商, 二是计算余数。

(1) 计算试商:为了清楚起见, 可将试商的计算细分成4个小步骤:

'1.计算q () *2, p是试商的位数, 因为被开方数的每个片段是两位

'2.计算 (q () *2) *10, 即向高端移一位

'3.计算q () *20+k, 把k加在最低位

'4.计算 (q () *20+k) *k, 一位数乘超长整数乘法

(2) 计算余式:

和除法计算一样, 内循环结束时得到的商是k-2。

5 效率分析

以除法为例, 影响除法计算效率的环节在试商, 如果除数的位数为m, 则每一轮试商的最大计算量是做9*m次乘法、9*m次加法和9*m次减法, 对于被除数是n位的超长整数来说, 全部试商过程的最大计算量是 (n-m) *9*n次乘法、 (n-m) *9*n次加法和 (n-m) *9*n次减法。合计是:9*n* (n-m) * (乘法运算+加法运算+减法运算) , 因此其时间效率是O (n2) 。

以下是除法运算和开方运算在PC机上执行的截屏:

(1) 除法运算。图1是输入界面, 图2是运算结果。被除数为848位, 除数为530位, 商是319位, 余数是529位, 运算用时5秒。

(2) 开方运算。图3是输入界面, 图4是运算结果。被开方数为1166位, 开方的商是583位, 开方的余数是584位, 运算用时9秒。

摘要:从模仿手工计算的过程入手, 讨论了如何利用ASP实现基于数组存储结构的无符号超长整数的除法运算和开方运算, 给出了基本算法和关键代码, 并结合实例给出了算法的时间效率。

关键词:无符号超长整数,除法运算,开方运算,数组,ASP

参考文献

[1]任志斌, 王存良, 耿国华, 等.超长整数四则运算实现方法的研究[J].通信技术, 2007 (6) .

[2]杨以成, 程明.PC机中超长数类设计[J].软件导刊, 2010 (9) .

[3]王溢琴, 齐悦.大整数运算的抽象类研究与设计[J].软件导刊, 2010 (1) .

复数的开方运算 篇2

主备人:石志雄

审核人:付红波

编号:15 日期:2011.3.9

教学要求:掌握复数的代数形式的乘、除运算。教学重点:复数的代数形式的乘除运算及共轭复数的概念 教学难点:乘除运算 教学过程:

一、复习准备:

1.复数的加减法的几何意义是什么? 2.计算(1)(14i)+(72i)

(2)(52i)+(14i)(23i)(3)(32i)-[(43i)(5i)]

3.计算:(1)(13)(23)

(2)(ab)(cd)(类比多项式的乘法引入复数的乘法)

二、讲授新课:

1.复数代数形式的乘法运算

①.复数的乘法法则:(abi)(cdi)acbciadibdi2(acbd)(adbc)i。例1.计算(1)(14i)(72i)

(2)(72i)(14i)(3)[(32i)(43i)](5i)(4)(32i)[(43i)(5i)]

探究:观察上述计算,试验证复数的乘法运算是否满足交换、结合、分配律? 例2.

1、计算(1)(14i)(14i)

(2)(14i)(72i)(14i)(3)(32i)2

2、已知复数Z,若,试求Z的值。变:若(23i)Z8,试求Z的值。②共轭复数:两复数abi与abi叫做互为共轭复数,当b0时,它们叫做共轭虚数。注:两复数互为共轭复数,则它们的乘积为实数。

课堂练习:说出下列复数的共轭复数32i,43i,5i,52i,7,2i。

③类比1223(1(22)(23)(23)3),试写出复数的除法法则。

abicdi(abi)(cdi)(cdi)(cdi)acbdcd222.复数的除法法则:(abi)(cdi)其中cdi叫做实数化因子

bcadcd22i

例3.计算(32i)(23i),(12i)(32i)(师生共同板演一道,再学生练习)练习:计算32i(12i)2,3i(1i)12

2.小结:两复数的乘除法,共轭复数,共轭虚数。

三、巩固练习: 1.计算(1)1i2ii3

(2)ii2i3i4i5(3)2i13 2iz1z2z1z22.若z1a2i,z234i,且求a。

巧用复数运算求一类函数迭代式 篇3

首先给出定义, 把形如h (x) =的函数组成的集合记为H, 即

[引例]若h1 (x) , h2 (x) ∈H, 则h1 (h2 (x) ) ,

h2 (h1 (x) ) ∈H, 且h1 (h2 (x) ) =h2 (h1 (x) ) .

证明:设则

且有h1 (h2 (x) ) =h2 (h1 (x) ) .

引例可以推广到任意个H型函数, 即若h1 (x) , h2 (x) , …, hn (x) ∈H, 则h1 (h2… (hn (x) ) , 且h1 (h2… (hn (x) ) ) =h1′ (h2′… (h1′n (x) ) ) , 这里h1′ (x) , h2′ (x) , …, h′n (x) 是h1 (x) , h2 (x) , …, hn (x) 的任一个排列.

从引例证明过程中得到启发:若h1 (x) =对应复数a+bi, h2 (x) =对应复数c+di, 则

对应复数 (ac-bd) + (ad+bc) i, 且 (ac-bd) + (ad+bc) i恰好等于它们的乘积 (a+bi) (c+di) .

由此可得到解法:要求由任意个H型函数迭代式所确定的函数表达式, 首先将已知函数所对应的复数写出, 然后写出乘积复数所对应的H型函数即为所求.

【例1】已知f (x) =试求f (g (h (x) ) ) , g (f (h (x) ) ) .

解:因为f (x) =对应的复数分别为2+3i, 4-i, 3-2i, 且 (2+3i) · (4-i) (3-2i) =53+8i, 写出H型函数

所以f (g (h (x) ) ) =

由引理可知g (f (h (x) ) ) =

【例2】已知f (x) =, 求g (x) =

上一篇:建筑主体工程施工技术下一篇:藏历新年

本站热搜