手动开平方和立方

一、序言

初中的时候数学老师教我们手动开平方,当时觉着很震惊,验证了好几遍,发现方法真的很牛!如今上了研究生,回想起以前手动开平方的方法都已经很模糊了,今天查了下百度,才发现,这个方法出自《九章算术》!原来中国几千年前就已经找到这种方法了!

二、手动开平方

九章算术上是如此描述的:

开方术曰:

置积为实。借一算。步之。超一等。议所得。以一乘所借一算为法。而以除。除已。倍法为定法。其复除。折法而下。复置借算步之如初。以复议一乘之。所得副。以加定法。以除。以所得副从定法。复除折下如前。

若开之不尽者为不可开,当以面命之。若实有分者,通分内子为定实。乃开之,讫,开其母报除。若母不可开者,又以母乘定实,乃开之,讫,令如母而一。

2.1 算法描述

1.将被开方数的整数部分从个位起向左每隔两位划为一段,用撇号分开,分成几段,表示所求平方根是几位数;小数部分从最高位向后两位一段隔开,段数以需要的精度+1为准。

2.根据左边第一段里的数,求得平方根的最高位上的数。

3.从第一段的数减去最高位上数的平方,在它们的差的右边写上第二段数组成第一个余数。

4.把第二步求得的最高位的数乘以20去试除第一个余数,所得的最大整数作为试商。

5.用第二步求得的的最高位数的20倍加上这个试商再乘以试商。如果所得的积小于或等于余数,试商就是平方根的第二位数;如果所得的积大于余数,就把试商减小再试,得到的第一个小于余数的试商作为平方根的第二个数。(即3为平方根的第二位。

6.用同样的方法,继续求平方根的其他各位上的数。用上一个余数减去上法中所求的积,与第三段数组成新的余数。这时再求试商,要用前面所得到的平方根的前两位数乘以20去试除新的余数,所得的最大整数为新的试商。。

7.对新试商的检验如前法。

2.2 举例:

1.从个位数向左每两位分成一段。

2.最高位为10,取平方数不大于10的数,即3

3. 10 - 3^2 = 1,余1

4. 3*20 = 60,试商 134/60 = 2

5,134 / (60+2) = 2,余10,小于62,所以确定 第二位是2

6. 32*20 = 640,试商 1026 / 640 = 1

7, 1026/(640+1) = 1,余385 ,所以确定第三位是1

8,一次计算下一位,知道余0

三、手动开立方:

九章算术描述如下:

《九章算术》少广章:

第一九题:今有积一百八十六万八百六十七尺。问为立方几何?

答曰:一百二十三尺。

开立方术曰:

置积为实。借一算步之,超二等。议所得,以再乘所借一算为法 ,而除之。除已,三之为定法。复除,折而下。以三乘所得数置中行。复借一算置下行。步之 ,中超一,下超二等。复置议,以一乘中,再乘下,皆副以加定法。以定法除。除已,倍下、 并中从定法。复除,折下如前。

开之不尽者,亦为不可开。若积有分者,通分内子为定实。定 实乃开之,讫,开其母以报除。若母不可开者,又以母再乘定实,乃开之。讫,令如母而一。

3.1 算法描述

1.将被开立方数的整数部分从个位起向左每三位分为一组;

2.根据最左边一组,求得立方根的最高位数;

3.用第一组数减去立方根最高位数的立方,在其右边写上第二组数;

4.用求得的最高位数的平方的300倍试除上述余数,得出试商;

5.把求得的最高位数的平方的300倍与试商的积、求得的最高位数的30倍与试商的平方的积和试商的立方写在竖式左边,观察其和是否大于余数,若大于,就减小试商再试,若不大于,试商就是立方根的第二位数;

6.用同样的方法,继续求立方根的其他各位上的数。对新试商的检验亦如前法。

3.2 举例

手动开平方和立方,布布扣,bubuko.com

时间: 2024-10-04 08:11:20

手动开平方和立方的相关文章

MySQL服务手动安装方法

解压安装 下载并解压mysql zip格式安装包. 将解压后的文件重命名为Mysql Server 5.6. 在C:\Program Files目录下创建MySql文件夹. 将文件夹Mysql Server 5.6拷贝到目录C:\Program Files\MySQL下.(也可以自己选择其他路径) 配置环境变量 我的电脑->属性->高级->环境变量,在PATH最后,增加“ ;C:\Program Files\MySQL\MySQL Server 5.6\bin ”,此处为mysql bi

图像处理之三种常见双立方插值算法

http://blog.csdn.net/jia20003/article/details/40020775 图像处理之三种常见双立方插值算法 双立方插值计算涉及到16个像素点,其中(i', j')表示待计算像素点在源图像中的包含 小数部分的像素坐标,dx表示X方向的小数坐标,dy表示Y方向的小数坐标.具体 可以看下图: 根据上述图示与双立方插值的数学表达式可以看出,双立方插值本质上图像16个像素点 权重卷积之和作为新的像素值. 其中R(x)表示插值表达式,可以根据需要选择的表达式不同.常见有基

自定义View 篇三 《手动打造ViewPage》

有了之前自定义View的理论基础,有了ViewPage.事件分发机制.滑动冲突.Scroller使用等相关知识的铺垫,今天纯手动打造一款ViewPage. 1.完成基本的显示: 在MainActivity中: public class MainActivity extends AppCompatActivity { private MyViewPage mViewPage; int[] imageIds = new int[]{ R.drawable.pic_0, R.drawable.pic_

Android新建项目手动添加Layout布局

前言: 这是看<第一行代码>学习到的第一章,之前使用Eclipse创建Android项目都是自动生成MainActivity.java文件和layout文件夹下的activity_main.xml布局文件,今天把自动生成这些文件的对勾去掉后,手动创建了这两个           文件,于是就写下随笔来记录一下加深印象,同时这也是申请博客以来第一次发表一些东西,就是想把记笔记当做一个习惯保持下去,OK,到这里了.... 1.所有创建项目的步骤都是一样的,只有到最后把Create Activity

手动下载 Xcode 文档

下载Xcode文档的方法有两个: 1. 自动下载:到在Xcode的Preserences中Downloads页面的Documentation,点击对应文档的下载. 不建议勾选下面的Check for and install updates automatically,因为下载过程中可能无法正常使用Documents. 2. 手动下载:到这个页面:https://developer.apple.com/library/downloads/docset-index.dvtdownloadablein

关于Json数据的手动解析

前几天做项目遇到了个关于服务器返回的JSONObject解析的问题,想记录一下. 关于Json的解析一般用2种方法,第一是下载GSON的JAR包,采用GSON解析,这种解析虽然方便使用,但是对于一些特殊格式的Json字符串是行不通的.而且JavaBean也写不出来.先上图: 对于这样的对象包对象的形式,不适合写传统的JavaBean,需要采用手动解析的形式.手动解析非常强大,基本可以对各种格式的Json字符串进行解析. 下面是我解析的类: public class OriginalRankBea

Maven中手动安装或部署jar

一些第三方jar包我们需要手动进行安装部署,另外如果使用nexus时索引未更新下来急于使用时也可以进行安装或部署.安装(install)仅将相应jar包安装到了本地仓库,而部署(deploy)则将jar包部署到了私有仓库中.如下两段代码分别是命令行形式下安装oracle 的jdbc驱动包,和部署surefire-junit包到私服上的代码. <span style="font-size:12px;">mvn install:install-file -DgroupId=co

12.5 手动故障转移

12.5 手动故障转移 12.5.1 禁用作业 禁用主服务器的备份作业,禁用辅助服务器上的复制作业和还原作业,禁用监视服务器上的警报作业. 12.5.2 还原辅助数据库 将所有末复制的备份文件从备份共享文件夹复制到辅助服务器的复制目标文件夹. 将所有末应用的事务日志备份按顺序还原到辅助数据库. 如果主数据库仍可访问,则请对主数据库做一个结尾日志备份. 使用 WITH RECOVERY 选项还原辅助数据库.最终,辅助数据库将成为正常的数据库. 将此辅助数据库还原成正常数据库之后,可以将该数据库重新

Maven 手动添加 JAR 包到本地仓库

Maven 确确实实是个好东西,用来管理项目显得很方便,但是如果是通过 Maven 来远程下载 JAR 包的话,我宿舍的带宽是4兆的,4个人共用,有时候用 Maven 来远程下载 JAR 包会显得很慢,一般我发现下载速度不明显的时候,我就 Ctrl + C 来终止它的下载.然后改用手动来下载,因为用迅雷一类的工具来下载会快很多.我机子上 Maven 的本地仓库的很多 JAR 包我都是手动下载的.手动下载的话就会带来一个问题,就是,怎么样手动将下载下来的 JAR 包添加到 Maven 的本地仓库.