请选择 进入手机版 | 继续访问电脑版
设为首页收藏本站手机客户端

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 学父五迁

[教育专版] 旗帜鲜明的反对竖式   [复制链接]

Rank: 8Rank: 8

发表于 2014-11-22 23:20:47 |显示全部楼层
容宝爸爸 发表于 2014-11-22 23:08
大家太抬举我了,我哪里牛啊,小码农一枚。
偶尔有些小点子,其实也不是原创的,或从这里哪里偷学而来,厚 ...


泡泡的算法尽管是并行,但总体运算量增长了。
如果高位段不能整除的情况下,高位段的除法运算量等同于整个竖式的运算量。
所以,泡泡的算法,只适合短除法。

容爸的算法尽管是串行,但总体运算量没有增长,和竖式一样,适合长除法。

看来,除法还挺难并行的。

容爸的构造乘法表和查表法,倒是非常符合计算机的算法。
这个表格可以用于任何相同除数的除法。

点评

汐岩  串行法就是水到渠成了,我估计是这样  发表于 2014-11-23 07:53:43
汐岩  并行的方法,运算量多了,但是理解起来会容易得多,我觉得这一点也是挺重要的。在刚开始做数学的时候,只要能做短除法,就足够了。等到遇到更复杂的问题,需要拓展的时候,她们已经对除法有了非常深刻的理解,发展出  发表于 2014-11-23 07:53:11

Rank: 4

发表于 2014-11-22 23:26:04 |显示全部楼层
容宝爸爸 发表于 2014-11-22 23:08
大家太抬举我了,我哪里牛啊,小码农一枚。
偶尔有些小点子,其实也不是原创的,或从这里哪里偷学而来,厚 ...

《孙子算经》对除法是这样算的,比如340/6,先商50,把300分掉,剩下40,然后再商6,分出一个36,剩下4.答案就是56余4.

这个其实就是除法竖式,但是理解起来要简单得多。我当时就是看到这里明白竖式的含义。

对乘法也一样,23*34,先用23*30=690,再23*4=92,二者相加等于782.
我看完这个,直接就会口算两位数乘法了,上学的时候学竖式,焦点都在谁应该和谁对齐,遇到零怎么换位,进位数写在哪里。。。从来没想过竖式其实就是这么简单一原理。所以我对竖式真的深恶痛绝,至少要让孩子自己去得到这个一般性做法,而不是一开始就教给一模型,什么数往里一套就出得数,思考过程完全被架空了。

点评

学父五迁  如果是计算机处理的话,或者竖式处理的话,只能遵循连减法的流程。如果是人脑自由思索,就可以直接分出大块,运用隔板法,就像泡泡那样。  发表于 2014-11-23 08:50:47
汐岩  那就是连减法和隔板法的综合了,对吗,也就是说做除法最终这两种方法都会用到  发表于 2014-11-23 07:49:12
学父五迁  只是这个连减法的步骤比较大,给了分项(各个数位分成各项)的隔板法余地。  发表于 2014-11-22 23:54:13
学父五迁  这个思路就是"连减法"。先减去 300,剩 40,再减去 36。  发表于 2014-11-22 23:52:55

Rank: 8Rank: 8

发表于 2014-11-22 23:36:57 |显示全部楼层
本帖最后由 学父五迁 于 2014-11-23 08:56 编辑

-- 这样一个运算过程是除法问题求解的一般抽象过程(抽象后会失去很多形象的元素),孩纸们应该接触这样一个解决问题的一般方法(一般方法对于具体问题的求解往往不是最优的;但是当其他最近解法都不灵的时候,还是得退到笨这个办法来。)

关于容爸提到的这个一般方法。
这个一般方法,是否一定要是竖式?
这是我考虑的问题。
我感觉,竖式不适合作为一般方法。

短除法,用不着竖式。
长除法,竖式又存在许多缺陷。
有时候,还需要额外弥补,如容爸所做的那样。
其实,容爸的思路中,那些竖式形式完全可以替换成普通乘法算式和减法算式。

更重要的问题是,竖式阻碍了学生对其他方法的探究。

如果是普通算式,学生可以使用"代式"。
容爸给出的竖式例子中,只能使用乘法表中的"代式"。
很难使用其他形式。

比如,除数 9 是一个非常特殊的除数。
因为,
10 = 9 + 1.
100 = 99 + 1
1000 = 999 + 1
这就意味着除数9的除法,可以直接转化为乘法和加法。

模仿明月的例子,给出一个除数9的长除法。

887568432 ÷ 9

76543210
87568432 =
8 X 1111111 X 9 + 8
7 X 111111 X 9 + 7
5 X 11111 X 9 + 5
6 X 1111 X 9 + 6 +
8 X 111 X 9 + 8
4 X 11 X 9 + 4 +
3 X 9 + 3 +
2
= 8 X 10^6  X 9 +
(8 + 7) X 10^5 X 9 +
(8 + 7 + 5) X 10^4 X 9 +
(8 + 7 + 5 + 6) X 10^3 X 9 +
(8 + 7 + 5 + 6 + 8) X 10^2 X 9+
(8 + 7 + 5 + 6 + 8 + 4) X 10 X 9 +
(8 + 7 + 5 + 6 + 8 + 4 + 2)

以上这种算法,完全就可以并行了。
当然,串行的效率也很高。
因为,高位加法的结果,可以直接用于低位中。

能做到这种转化,需要理解除法的本质:
将被除数分成除数的倍数和余数。

竖式的形式局限,对这个本质的理解,只起到负面作用。

Rank: 6Rank: 6

发表于 2014-11-23 08:48:13 |显示全部楼层
早睡的人今早惊恐的发现又多了这么多我理解困难的东西,祝你们玩的开心。

我就表示佩服一下你们的钻研精神。

点评

汐岩  哈哈,抱一抱,被吓到的可怜孩纸:D  发表于 2014-11-23 10:51:30

Rank: 7Rank: 7Rank: 7

发表于 2014-11-23 09:52:57 来自手机 |显示全部楼层
我打酱油地飘过
头像被屏蔽

论坛元老

Rank: 8Rank: 8

发表于 2014-11-23 16:11:55 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Rank: 8Rank: 8

发表于 2014-11-23 18:44:50 |显示全部楼层
明月照我心 发表于 2014-11-23 16:11
887568432 ÷ 9这个东西为什么搞得这么复杂啊?有必要吗?

我认为数学的本质不是简单的东西复杂化,而是 ...


嘿嘿。这只是个诱饵。
如果除数是 99 呢? 999 呢?

887568432 ÷ 99

887568432 ÷ 999

这两个除数都不在乘法表范围内。
不过,乘法也容易构造。不妨试试看。

Rank: 3Rank: 3

发表于 2014-11-23 19:33:49 |显示全部楼层
学父五迁 发表于 2014-11-23 18:44
嘿嘿。这只是个诱饵。
如果除数是 99 呢? 999 呢?

87568432=99x875684+875684+32=99x875684+875716
875716=99x8757+8757+16=99x8757+8773
8773=99x87+87+73=99x87+160
160=99x1+61
87568432÷99=875684+8757+87+1..61=884529..61

87568432=999x87568+87568+432=999x87568+88000
88000=999x88+88+0=999x88
87568432÷999=87568+88+0..88=87656..88

Rank: 8Rank: 8

发表于 2014-11-23 19:35:47 |显示全部楼层
容宝爸爸 发表于 2014-11-23 19:33
87568432=99x875684+875684+32=99x875684+875716
875716=99x8757+8757+16=99x8757+8773
8773=99x87+87+ ...


大赞容爸的速度。
只是,容爸的被除数,少了最高位的一个8。
不过,这也无妨,容爸已经把大体思路展示得非常清楚了。

Rank: 8Rank: 8

发表于 2014-11-23 19:36:40 |显示全部楼层

887568432 ÷ 99

8,87,56,84,32

10^2 = 99 + 1

10^4 = 101 X 99 + 1

10^6 = 10101 X 99 + 1

10^8 = 1010101 X 99 + 1

------------------------

8,87,56,84,32 =

8 X 1010101 X 99 + 8 +

87 X 10101 X 99 + 87 (= 100 - 13 = 99 - 12,  多出一个 99 ) +  

56 X 10101 X 99 + 56 +

84 X 101 X 99 + 84 (=100 - 16 = 99 - 15,  多出一个99) +

32

----------------------
余项部分

多出来2个99的倍数:  2 X 99

剩下的余项部分 = 8 - 12 + 56 - 15 + 32 = 28 + 41 = 69
小于99,这就是余数了。

-----------------------

倍数部分 / 99 =

(6)
8 X 10^6,

(4)
87 + 8 = 95

95 X 10101 = 95 X 10^4 + 95 X 101

(2)
95 + 56 = 151

151 X 101 = 151 X 10^2 + 151 = 10^4 + 52 X 10^2 + 51

(0)
84 + 51 = 137 = 10^2 + 35

在加上最后的99的2倍。
结果如下:

商 = 8965337
余数 = 69

Rank: 8Rank: 8

发表于 2014-11-23 19:36:55 |显示全部楼层
887568432 ÷ 999

887,568,432

10^3 = 999 + 1

10^6 = 1001 X 999 + 1

------------------------

887,568,432 =

887 X 1001 X 999 + 887 +

568 X 999 + (568 + 432) (= 1000 = 999 + 1)

----------------------
余项部分

多出来1个99的倍数:  1 X 999

剩下的余项部分 = 888
小于999,这就是余数了。

-----------------------

倍数部分 / 999 =

(3)
887 X 10^3 + 887,

(0)
887 + 568 = 1000 - 113 + 570 - 2 = 1570 - 115 = 1455


在加上最后的999的1倍。
结果如下:

商 = 888456
余数 = 888
头像被屏蔽

论坛元老

Rank: 8Rank: 8

发表于 2014-11-23 19:56:14 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Rank: 3Rank: 3

发表于 2014-11-23 20:08:08 |显示全部楼层
本帖最后由 容宝爸爸 于 2014-11-23 20:18 编辑
明月照我心 发表于 2014-11-23 16:11
887568432 ÷ 9这个东西为什么搞得这么复杂啊?有必要吗?

我认为数学的本质不是简单的东西复杂化,而是 ...


两种方法的计算量统计对比
A。明月的887568432 ÷ 9计算量统计如下:
如果该竖式过程由人来计算,计算量包含有:
8次1位数×1位数的乘法(可背直接99表);
8次2位数-2位数的减法。

如果以上过程由计算机来模拟,计算量仍然包含有:
8次整数乘法;
8次整数减法。

B。学父的87568432÷ 9计算量统计如下:
先把被除数表达成(这一步假定由经验完成,不包含任何计算量):
87568432= 8 X 10^6  X 9 +
(8 + 7) X 10^5 X 9 +
(8 + 7 + 5) X 10^4 X 9 +
(8 + 7 + 5 + 6) X 10^3 X 9 +
(8 + 7 + 5 + 6 + 8) X 10^2 X 9+
(8 + 7 + 5 + 6 + 8 + 4) X 10 X 9 +
(8 + 7 + 5 + 6 + 8 + 4 + 3) X 1 X 9 +
(8 + 7 + 5 + 6 + 8 + 4 + 3 +2)

然后87568432÷ 9的计算量等于如下多项式求和的计算量。
8 X 10^6 +
(8 + 7) X 10^5 +
(8 + 7 + 5) X 10^4  +
(8 + 7 + 5 + 6) X 10^3  +
(8 + 7 + 5 + 6 + 8) X 10^2+
(8 + 7 + 5 + 6 + 8 + 4) X 10  +
(8 + 7 + 5 + 6 + 8 + 4 + 3) X 1 +
(8 + 7 + 5 + 6 + 8 + 4 + 3 +2)

如果该多项式由人来计算,一般可以忽略1×10这次乘法的计算量(直接末尾添零),而且保留中间结果进行累加,计算量包含有:
7次1位数+2位数的加法,
7次多位数+多位数的加法。

如果以上过程由计算机来模拟,假定在2进制机器语言条件下不忽略1×10这次乘法的计算量,而且保留中间结果进行累加,计算量仍然包含有:
7次整数加法;
7次整数乘法;
7次整数加法。

C。说明。
明月的被除数是9位数887568432,学父的被除数是8位数87568432。

点评

容宝爸爸  我已经发现打字过程中copy+paste多了一行,并且早已经改过了,你再F5再刷一下。  发表于 2014-11-23 20:23:30
学父五迁  7次整数乘法? 我的算法里面只有加法。最后一个余数项,可以直接用加减法(类似于弃9法)分出9的倍数。  发表于 2014-11-23 20:21:14
学父五迁  汗。看来是我漏了一位。  发表于 2014-11-23 20:17:11

Rank: 8Rank: 8

发表于 2014-11-23 20:17:31 |显示全部楼层
本帖最后由 学父五迁 于 2014-11-23 20:23 编辑

请根据上述结果,计算如下除法。

887568432 ÷ 495

特别邀请容爸和明月。:D

估计容爸很有兴趣。

明月如果不做做过长位数除数的长除法,没有切身体验的话,很多细节就没法探讨。

-------------------

这类题目,主要目的不在于速算,而在于对同余(倍数项、余数项)、进制、位值的深入理解。

十进制数字是什么?不过是一种记录数量的方式而已。

十进制数字便于加减法,便于比较大小。

但是,在乘除法上,十进制数字极为笨拙。

竖式,则进一步加强了这种笨拙。

围绕着十进制数字,用竖式进行乘除法计算,在我看来,负面意义极大,几乎找不到正面意义。

若是使用倍余项,至少还可以训练一下多项式的拆项与合项,为将来的初等数学(中学)做准备。

那么,加减法用竖式,就合适了吗?

比乘除法竖式要好一些,但是,仍然阻碍了学生凑整的整块整体思维。

Rank: 6Rank: 6

发表于 2014-11-23 21:34:22 |显示全部楼层
我只想说神啊。。。。之前无限膜拜过老高,整屏看得我脑子里除了字还字,当时就想出除了字还是字来形容,但“看完”这个贴,唉 ,看都要打引号,我为以前的除了字还是字感到庆幸,因为那个除了字还是字好歹字我还认识。现在是字都不认识了。。。。。。。。。我只奇怪
这么一大堆,论坛回复这个小框框里好打字吗?
87568432= 8 X 10^6  X 9 +
(8 + 7) X 10^5 X 9 +
(8 + 7 + 5) X 10^4 X 9 +
(8 + 7 + 5 + 6) X 10^3 X 9 +
(8 + 7 + 5 + 6 + 8) X 10^2 X 9+
(8 + 7 + 5 + 6 + 8 + 4) X 10 X 9 +
(8 + 7 + 5 + 6 + 8 + 4 + 3) X 1 X 9 +
(8 + 7 + 5 + 6 + 8 + 4 + 3 +2)

Rank: 6Rank: 6

发表于 2014-11-23 21:35:30 |显示全部楼层
我只是来默哀我的智商的,大家继续哈。。。

Rank: 6Rank: 6

发表于 2014-11-23 21:41:39 |显示全部楼层
数学是疗愈作用的,在万分悲伤的心情下打开李网,点进此贴,回复完毕后,发现人缓过气了。。不止治失眠啊。。。。。。。。。。。
头像被屏蔽

论坛元老

Rank: 8Rank: 8

发表于 2014-11-23 22:19:14 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Rank: 4

发表于 2014-11-23 22:20:46 |显示全部楼层
现在知道学父为什么每次那么严谨了,被质疑逼出来的,人能看得懂的文字遭到质疑,人看不懂的文字没有回声

Rank: 3Rank: 3

发表于 2014-11-23 22:27:54 |显示全部楼层
明月照我心 发表于 2014-11-23 19:56
岀个99,999,9999,99999…当然可以找规律找技巧,但更多是没什么规律的,这有时候需要熟练和记忆的呀。九 ...

看我下面的计算量统计,单从除数为9这道题,我个人认为,明月的计算过程工作量其实无论是人算还是机器算,都要稍占优势。(比较起做2位数+2位数的加法,至少我更习惯背99表做1位数×1位数的乘法。)

而除数为99时,有如下分析:
对于明月的方法,可以如果花费8次2位数×1位数乘法的计算量,提前构造99×1=99,99×2=198,99×3=297,。。。99×9=981这样一个表,然后查表可避免重复计算,那么仍然还需要做8次3位数-3位数的减法才能算出商和余数。
而学父的计算过程,前提是必须掌握构巧妙造多项式和计算商过程中迭代求和等高难度技巧,并假设由经验构造多项式不需要任何运算,这样还实际需要:3次2位数加法,2次3位数加法,6次2位数加法,1次2位数除法以上的计算量才求出商和余数。

至于除数为999呢,可用类似原理分析两种方法的运算量。

每个人的思维习惯都各不相同,而且任何方法都有学习成本和使用收益,所以至于说哪种方法更好,就智者见智了!人毕竟不是计算机。

点评

明月照我心  如果我是个小学生,我宁可背下来99的各种倍数,也不肯花时间去思考迭代求和的算法。  发表于 2014-11-23 22:38:29
您需要登录后才可以回帖 登录 | 注册

Archiver|手机版|幸福大观园 ( ICP12039693 )  

GMT+8, 2024-3-28 15:12 , Processed in 0.029208 second(s), 10 queries .

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部