设为首页收藏本站手机客户端

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: 学父五迁
打印 上一主题 下一主题

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

Rank: 3Rank: 3

53#
发表于 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

52#
发表于 2014-11-23 19:56:14 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Rank: 8Rank: 8

51#
发表于 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

50#
发表于 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

49#
发表于 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: 3Rank: 3

48#
发表于 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

47#
发表于 2014-11-23 18:44:50 |只看该作者
明月照我心 发表于 2014-11-23 16:11
887568432 ÷ 9这个东西为什么搞得这么复杂啊?有必要吗?

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


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

887568432 ÷ 99

887568432 ÷ 999

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

论坛元老

Rank: 8Rank: 8

46#
发表于 2014-11-23 16:11:55 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Rank: 7Rank: 7Rank: 7

45#
发表于 2014-11-23 09:52:57 来自手机 |只看该作者
我打酱油地飘过

Rank: 6Rank: 6

44#
发表于 2014-11-23 08:48:13 |只看该作者
早睡的人今早惊恐的发现又多了这么多我理解困难的东西,祝你们玩的开心。

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

点评

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

Rank: 8Rank: 8

43#
发表于 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: 4

42#
发表于 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

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


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

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

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

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

点评

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

Rank: 3Rank: 3

40#
发表于 2014-11-22 23:08:12 |只看该作者
本帖最后由 容宝爸爸 于 2014-11-26 16:27 编辑

大家太抬举我了,我哪里牛啊,小码农一枚。
偶尔有些小点子,其实也不是原创的,或从这里哪里偷学而来,厚颜的自己竟记不得师出何处了。
今天想到分段被除数这个想法,先是直觉应该行,但起初并没有得到容妈的支持。
(是啊,跟领导说话怎么能够没根没据呀,所以就花了些时间写了个帖子。自我感觉就文章来说,立意不怎么高妙,就只求工笔清秀加点印象分了。)

孩纸教育我本人是外行,但还喜欢像孩纸一样充满好奇心的来探索吧。试着集中回复一下哈,如有不妥,请大家呵呵即可。
@容易妈:“那么,竖式法到底该不该教,在你看来?”
抱歉,我的观点可能让领导失望了。我个人目前认为,可能还是应该交给孩纸们这样一个“古板”而“没有人性”的办法,让他们体会这个计算过程。
这样一个运算过程是除法问题求解的一般抽象过程(抽象后会失去很多形象的元素),孩纸们应该接触这样一个解决问题的一般方法(一般方法对于具体问题的求解往往不是最优的;但是当其他最佳解法都不灵光的时候,还是得退到笨这个办法来。),通过一次次反复逐位求商体会这样一个迭代过程,而这种迭代过程也有所体现今后某些高大上的数学思想(如归纳法)等,还有试商的过程其实还是蛮有挑战性的,经过一些练习后孩纸的数的直觉可能会更好,失败的次数也越来越少,至少让他们形成正确判断当一次试商失败后,到底应该商+1还是商-1,而这些也会体现后来其他学科的某些方法(如算法设计的二分法)。对于方法本身的认识,甚至还可能作为孩纸批评性思维训练的良好素材,不回避“经典”存在的缺陷,大可想想办法可否改进。位数多了不容易对位怎么办?补零吧。试商过程重复计算怎么提升效率呢?维护和利用中间结果啊。(其实这两个办法我也是看了学父的帖子,在恍然大悟,尽管这些思想我在其他地方也常用,可我为什么以前没有想到用来解决这两个问题呢?!)

再说另一方面,我也承认竖式计算法本身就不是除法的全部,更不应该把这个方法交给孩纸后,让孩纸形成错觉这是除法的全部。我直到今天才被科普了学父推荐的链接后才明白,横式法竟然包含以前自己小学时候学的某些速算题涉及的心算或估算,不知道理解得对不对,也许把横式法称为“非竖式计算法”更能让人明白一些。我坚信这种心算(口算)以及其他估算过程与形象思维高度关联,确实很符合孩纸天性,而且可能也符合大部分人的日常的绝大多数思维活动,可谓是一个人的生存必备技能,比如超市白菜0.98元/斤,5斤共4.90元,这可以迅速准确心算;青菜1.58元/斤,3斤白菜和2斤青菜哪个贵,这个可以迅速估算。不知道这些口算估算法可不可以说是泡妈提到的属于自己的那50本书?

让孩纸们学会用斧头,也要会用剪刀,更重要的是要他们明白:什么时候该用剪刀,什么时候该用斧头。

@明月照我心:“这些个复杂的横式、改良竖式,打算是教给谁呢?小学生?”
我承认,这些个算法真没法教给他们,更不忍心让他们扮演计算机的角色去解决某些特定的问题。
不知道现不现实,如果能够抛砖引玉,让某些有兴趣的孩纸体会到这种方法改进背后的原因(为什么要改?为什么留?新的方法和旧的方法有何异同?甚至说我今后可不可以有更好的其他尝试呢?),那么我就很欣慰了。

@学父五迁:“分段法更是体现了多项式的思想。实际上,计算机中的并行运算,也是采取了类似的算法。”
1。您一说,我也觉得我上面的分段法有一点像多项式。
2。另外发现,我上面分段拼接这个算法的并行性不好,因为后一段被除数的计算总要依赖前一段余数进行拼接。
而泡泡用的那个办法,仿佛更体现多项式的精髓(被除数的每位数都要考虑的其对应的权值,如1,10,100,1000等),才能真正并行。例如125÷7,把被除数分拆100+25,(100+25)÷7=(100÷7)+(25÷7)。
先是divide部分:
100÷7=14(商)...2(余数)
25÷7=3(商)...4(余数)
注意到,两个除法运算都独立进行,互不依赖对方的输出作为自己的输入。

再是combine部分:
先是两个商直接相加14+3=17,而后再把余数相加(2+4)后再做一次除法:
(2+4)÷7=0(商)...6(余数),
把商0与17累计得到最终商17,余数6即是最终余数6,即:125÷7=17(商)...6(余数)。

3。好像我那种分段拼接方法,更适合解决无限的随机输入数据流,处理被除数的每一位数的策略总是相同的,也就是说并没有区分这位数所在位置对应的权值是多少,是10,100,1000等。也就是说当老师在黑白写被除数,写了很长很长一大段,但他在写完之前,你并不知道已知的被除数的第一位数到底对应的权值是100,还是1000,还是10000。。。,但是您在已知除数的前提下,仍然可以开始从被除数的第一位开始计算,而且确信这样算最终结果也是正确的。

具体使用我的分段法,来解决同样的问题:125÷7,把被除数分拆两段12,5。
第一步:12÷7=1(商)...5(余数)
第二步:(5)5÷7=7(商)...6(余数)
把商1与7依次拼接得到最终商17,末段余数6即是最终余数6,即:125÷7=17(商)...6(余数)。

注意到,第一步12÷7其实并不是(12×10)÷7,这就是我的方法和泡泡的方法的区别。

4。最后在补充一句,其实我那个所谓的拼接办法,真的会让明眼人呵呵的,或许大家明天早上就一醒来就立刻会心呵呵了。
说了那么多,只不过是把竖式计算法改换了一下记录方法而已。也就是把原来拼在一盘皮萨,分别把其中每一小块摆到圆桌上的每个小朋友面前的盘子里而已,而从吊灯角度俯视,这些皮萨依旧是一个圆饼啊,只不过分得开了些嘛。
这就像小学一年级时,我们写的等式:“2 + 3 = 5”;
到了高年级,却写成:
“2 + 3
= 5”

所以,这也是我没有再厚着脸证明我哪个所谓的“被除数分段法”的原因,真的没有什么技术含量,卖弄了这些文字,大家见谅才是。

点评

容宝爸爸  修改笔误:“到底应该除数+1还是除数-”修改为“到底应该商+1还是商-”  发表于 2014-11-26 16:28:10

Rank: 6Rank: 6

39#
发表于 2014-11-22 20:55:11 |只看该作者
刚才容爸给我解释了一下竖式算法的本质,他理解的本质,我说我有个感觉,这就像美术里的简笔画有木有。他基本认可我这个比方,但是他认为还是该教过孩子,因为这是提炼过的,精华的东西。

点评

明月照我心  30岁才理解除法是什么?我难以理解。  发表于 2014-11-24 10:20:42
汐岩  我不同意教给孩子,至少我对除法的理解被它废了,到30岁才明白过来真正除法(还只是短除法)的含义是什么,而大部分人30岁也还没明白呢,还被废着呢  发表于 2014-11-23 22:45:32
明月照我心  我同意应该教给孩子。  发表于 2014-11-23 15:36:34
容易吗  咳咳,我觉得我比较会聊天,他比较会算题。:)  发表于 2014-11-22 21:03:45
学父五迁  哈哈。容妈是无结构化、无模块化(华氏),容爸是结构化、模块化(蒙氏)。正好平衡。  发表于 2014-11-22 20:57:13

Rank: 4

38#
发表于 2014-11-22 20:49:41 |只看该作者
我是这么想,如果孩子买个小书架,别人问她:你这书架这么小,以后你有6578997654本书了,该放哪里?我觉得孩子根本不会操这心,现在好用就够了,以后,自然会有以后的办法,不断改进才是人生乐趣所在。你一下给她一个可以放6578997654本书的书架,她觉得很难理解,而且这辈子再也没有机会买真正适合自己的书架了,更悲催的,或许她一辈子只买了50本书,可是仍然要用一个放6578997654本书的书架装这50本书

点评

容易吗  泡妈最会打比方。  发表于 2014-11-22 20:56:13
学父五迁  嗯。我也是这个意思。短除法,根本用不到竖式。长除法,竖式又不好用。这只是为了证明竖式没啥意义。  发表于 2014-11-22 20:54:02

Rank: 8Rank: 8

37#
发表于 2014-11-22 20:36:58 |只看该作者
容易吗 发表于 2014-11-22 19:55
那么,竖式法到底该不该教,在你看来?

容爸有一句话。

-- 另一方面,我们仍不放弃竖式法,能够看到的意义之一在于,每一步都严格只计算商的一位数,这样依次、规整、机械、重复的有限过程,其实非常有利于计算机器语言来描述,有助于我们理解如何让计算机来协助人类完成这些任务。

点评

容易吗  哦,他修改了帖子,我这才看到这句话。三句话不离本行的IT男。:)  发表于 2014-11-22 20:46:42

Rank: 8Rank: 8

36#
发表于 2014-11-22 20:28:29 |只看该作者
容宝爸爸 发表于 2014-11-22 18:13
今儿天气好,心情也好,也来挑战一下学父布置的作业:34908098898083535252÷498。
直接使用竖式 ...

哇。容爸太牛了。
一眼就看到问题的本质——乘法表。
因为每一步的商只有一位。
那么,乘法表就只有9条。

分段法更是体现了多项式的思想。

实际上,计算机中的并行运算,也是采取了类似的算法。
头像被屏蔽

论坛元老

Rank: 8Rank: 8

35#
发表于 2014-11-22 20:03:37 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
签名被屏蔽

Rank: 6Rank: 6

34#
发表于 2014-11-22 19:55:49 |只看该作者
容宝爸爸 发表于 2014-11-22 18:13
今儿天气好,心情也好,也来挑战一下学父布置的作业:34908098898083535252÷498。
直接使用竖式 ...

那么,竖式法到底该不该教,在你看来?

点评

汐岩  我也觉得至少不该教给孩子,竖式就像计算器一样,在我学的时候,感觉它就是个黑箱,把数放进去,得数自动出来,为啥会出来?不知道。  发表于 2014-11-22 20:41:30
您需要登录后才可以回帖 登录 | 注册

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

GMT+8, 2024-6-2 07:48 , Processed in 0.030150 second(s), 10 queries .

Powered by Discuz! X2 Licensed

© 2001-2011 Comsenz Inc.

回顶部