首页 > 其他分享 >手算开平方

手算开平方

时间:2024-07-12 19:31:01浏览次数:13  
标签:开平方 数字 开数 手算 位数 我们

一. 如何手算开平方

举个例子,比如说根号 \(114514\),是这么手算开平方的:

image

这其中有几个重点值得我们注意。

  • 我们发现,数字 \(114514\) 被分成了两个数字为一段的很多小段,每一小段上面有一个得出的数值。这个过程类似除法得出商的过程。

  • 请看到每个式子中根号左边的数值,我们暂且叫他“被开数”。被开数是怎么得出来的呢?我们先看第一个被开数 \(3\), \(3*3=9\) 是最大的小于第一段小区间 \(11\) 的完全平方数。 这个时候,我们在小区间 \(11\) 的上方写上 \(3\) 。 我们再来看第二个被开数 \(63\) ,其实63这个被开数最开始只有 \(6\) , \(3\) 是我们后添上的。这个 \(6\) 就是最上面的“商”乘 \(2\) 得出的结果。为什么我们要填上 \(3\) 呢,我们发现\(63*3=189\) 是最大的小于 \(245\) 的数字(按照这个规律来的数字中)。这个 \(245\) 就是\(11-9=2\) 和 小段 \(45\) 落下来的结果,和除法竖式类似,请看图自行脑补。

  • 我们再次巩固一下。譬如说第三个“被开数”是 \(668\),其实最开始只有 \(66\) , \(8\) 是我们后添上的。\(66\) 就是上面的商 \(33\) 乘 \(2\) 得到的结果。而\(668*8=5344\)是最大的小于5614的数字(按照这个规律来的数字中)。而 \(5614\) 就是 \(245-189=56\)\(14\) 落下来后的结果。和除法竖式类似,看图自行脑补。

-如果我们想更加精确地算出带有小数点的开方结果。我们只需要在 \(114514\) 后面加一个小数点,然后写一堆 \(0\) ,还是两两分组照着整数部分的来就行,请看图自行理解。

WARNING:以下的部分会涉及烧脑,对大脑的损伤不亚于核辐射,请斟酌后观看。本人对各位的大脑 \(IQ\) 损失不承担任何责任。

我们再补充一下。大家想想,\(114514\) 这个数字非常美妙,可以分成两两一组而没有任何的多余。

但是,\(108\) 这个数字就不那么幸运了,我们不论怎么两个两个分,都会有一个数字剩下。这个时候,我们这样分就行了: \([1][0, 8]\)。

阅读下面的内容时请确保这一章已经读懂,这条规定生效于每一章。

二. 为什么这样手算开平方?

我们会有疑问的点有以下几点:

  1. 为什么要分成两个数字这样两两一段?
  2. 为什么被开数的计算这么奇怪?

对于这两个核心的问题,我们可以这样解决:

我们需要明确的是,这种竖式的手算开平方其实就是一种代数算法的直观性表达。我们完全可以用代数式来解释和运用手算开平方的这种思想。

问题1:为什么一个数字要分成两两一段?
1位数        2位数        3位数        4位数

0~9         10~99       100~999      1000~9999 (原数)

1~2位        3~4位        5~6位       7~8位     (平方后)

比如说,一个2位数 \(60\),开平方之后的 \(3600\) 就是一个 \(4\) 位数。
或是一个两位数 \(30\),开平方之后的 \(900\) 就是一个 \(3\) 位数。

我们之所以两个两个分成一段,是因为一个位数开平方后对应两个位数,见上表。

我们现在思考一个问题。对于有奇数个数位的数字,比如说 \(108\),我们为什么会把它分成 \([1][0,8]\) 而不把他分成 \([1,0][8]\) 呢?按理说这样的分发不应该没有区别吗?

其实,\(108\) 这个数字可以理解为 \(108.0000000...\) 我们的手算开平方就可以按照这样的顺序不停地进行下去。我们想象,如果我们把它分成了\([1,0][8]\) 的话,就会出现这种情况。

$10 | 8.0 | 00 | 00... $ 我们在这个时候,会发现小数点不明确,这样的小数点不明确显然会出现大问题,故:有奇数数位的数字,第一个分区只有一个数字。

问题2:为什么被开数的计算这么奇怪?

我们主要研究的问题是,为什么被开数要乘上20再加上一个数,再乘上加上的这个数字。

数学代数证明:

比方说我们要开方 \(1145\),分区:\([1,1][4,5]\)

\(1145 = (30 + x)^2\)

\(1145 = x^2 + 60x + 900\)

\(245 = x^2 + 60x\)

\(245 = x(x + 60)\)

我们知道 \(x(x + 60)\) 就差不多是我们的被开数了。\(60\) 就是 \(3 * 20\) 的结果。

证明完毕。

我们还可以加深一步,证明 \(1145\) 的第三个被开数。

\(1145 = (x + 33) ^ 2\)

\(1145 = x^2 + 66x + 1089\)

\(56 = x^2 + 66x\)

\(56 = x(x + 66)\)

完事!

三. 如何手算开立方

大概长这样,主要讲原理

设 \(N\) 为被开立方的数字。

\(N = (10x + y) ^ 3\)

\(N = 1000x^3 + 300x^2y + 30xy^2 + y^3\)

\(N = 1000x^3 + y(y^2 + 300x^2 + 30xy)\)

\(N = 1000x^3 + y(y^2 + 30x(10x + y))\)

我们整理成这样,差不多就可以运用到竖式中去了
\(~~~~~~~~~~~~~~~~~4~~~~~8\)
\(~~~~~~~~4\sqrt{114514}\)
\(~~~~~~~~~~~~~~~64\)
\(~5296\sqrt{~50514}\)
\(~~~~~~~~~~~~~42368\)

我们发现,平方根的乘上20变成了 \((x^2 + 4800 + 120y)\) ,这样的规律显然很难了

四. 如何手算开五次方

标签:开平方,数字,开数,手算,位数,我们
From: https://www.cnblogs.com/blogs-for-Ruan-ji/p/17578438.html

相关文章

  • Carmack的快速开平方根倒数算法(Fast inverse square root)
    基本原理需求\(y=\frac{1}{\sqrt{x}}\)\(log(a^b×a^c)=bloga+cloga=(b+c)loga\)32位浮点表示法:二进制的科学计数法符号位1+阶码8(有符号的反码表示幂指数)+小数位23(二进制小数首位必为1,默认,只需表示小数位即可)-20240511163945890.webp)字符串形式:\(S_0​E_1​E_2​...E_7......
  • 可实现加、减、乘、除、开平方的计算器软件的实验设计
    1、思路代码:#include<stdio.h>#include<math.h>//牛顿迭代法计算平方根doublesqrt_newton(doublex){doubleguess=x/2.0;//初始猜测值为x的一半doubledelta=0.000001;//误差范围while(fabs(guess*guess-x)>delta){guess=(guess+x/guess)/2.0;......
  • 可实现加、减、乘、除、开平方的计算器软件的实验设计
    可实现加、减、乘、除、开平方的计算器软件的实验设计1、思路代码:#include<stdio.h>#include<math.h>//牛顿迭代法计算平方根doublesqrt_newton(doublex){doubleguess=x/2.0;//初始猜测值为x的一半doubledelta=0.000001;//误差范围while(fabs(guess*gues......
  • 牛顿迭代法实现开平方
    笔算开平方的算法通常使用牛顿迭代法,也称为牛顿切线法。算法步骤如下:选择一个初始猜测值x0,一般来说可以选择1。根据牛顿迭代法的公式,计算下一个猜测值x1=(x0+a/x0)/2,其中a是待求平方根的数。重复步骤2,直到x1和x0的差值小于一个给定的精度eps,即|x1-x0|<eps。下面是......
  • 手算base64
    CSP2021考了……什么鬼……base64是什么Base64是网络上最常见的用于传输8Bit字节码的编码方式之一,Base64就是一种基于64个可打印字符来表示二进制数据的方法。可查看RFC2045~RFC2049,上面有MIME的详细规范。Base64编码是从二进制到字符的过程,可用于在HTTP环境下传递较长的标识信......
  • 高手算法专项训练-期望问题
    高手算法专项训练-期望问题T1猫抓老鼠​ 我们可以设猫在点\(u\)老鼠在\(v\)点时猫抓到老鼠的期望时间为\(f_{u,v}\),设此时猫的目标点为\(next_{u,v}\),而这个\(next_{u,v}\)很显然可以在跑\(n\)便BFS。注意\(f\)的转移顺序显然由\(u,v\)的距离来决定。所以......
  • Java中进行高精准度坐标数据计算使用BigDecimal(计算距离、开平方)
    场景Java中使用java.awt.geom.Point2D进行坐标相关的计算(距离、平方等):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/126072919Java中使用JTS对空间几何计算(读取WKT、距离、点在面内、长度、面积、相交等):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article......
  • 中缀/后缀/前缀表达式及相互转换的手算详细步骤及C代码实现
    文章目录​​1三种算术表达式​​​​2后缀表达式相关考点​​​​2.1中缀表达式转后缀表达式​​​​2.1.1手算​​​​2.1.2机算​​​​2.2后缀表达式求值​​​​......
  • 新手算法第一题----删除排序数组中的重复项
     * @param {number[]} nums * @return {number} */var removeDuplicates = function(nums) {  if(nums == 0 || nums == [])    return 0......