欢迎光临散文网 会员登陆 & 注册

Scratch与数学的整合2

2023-06-28 10:38 作者:AI真有趣  | 我要投稿

                第2课    有多少种分法

一、课程导入

        本节课,你将会学到:什么是列举?怎样列举、计算所有可能?如何用Scratch实现“有多少种不同的分法”的程序?

二、想想议议

        1、在学习开始时,我们先要了解一下什么是列举。“列举” 这词我们怎么把他下个定义呢?或许这样理解起来会比较简单:我们把这两个字拆开来看   。“列”怎么理解?那么“举”又怎么理解?有的同学说:“‘列’是‘列出’。”还有的同学说:“‘举’是‘举起来’。”,那我就想知道,在“列出举起来”中哪些字是多余的呢?从读起来是否通畅来看,就可以知道答案是“列出”。但此事我要提醒大家,我们这节课里面还会提到“所有可能”呢!

        2、由此我们可以定义:所谓列举,就是列举出所有可能。在平时,列举要做到不重不漏。在概率题中,我们经常会碰到问:“有多少种发生的可能?”同时概率又是一个衡量事件可能发生的大小的一个值。所以它必然会有指定的算法。

        3、我们先来看一道例题:

        把一些书分给学生一些学生,每人只能分到一本书。问:有多少种不同的分法?

        解析:由于题目中没有明确给出书和学生的数量,∴我们无法直接通过列举来计算所有可能。那么我们不妨把学生的数量看成一个整体,每一本书均看成一个个体,一个一个的排除。通过画图得到指定的公式(如图1所示):用“○”表示已有的书,“∅”表示被排除掉的书:

学生1:○○○○……○○

学生2:○○○○……○∅

学生3:○○○○……∅∅

以此类推:……

学生(n-1):○○

学生n:○∅

                                     图1

        在上节课我们学过,字母可以表示任意数,代数式中就含有字母,那么“学生n”中的“n”就是一个代数式。可我要想用含有字母的式子表示这些学生的名称,我到底该怎么办呢?这位同学想的好。把学生n看成最后一个学生。在解决排队问题时,问到“××的前面一个人是从左往右数第几位”时,就用这个人的序数减1,那么学生n的前面不就是学生(n-1)吗?

        另外我们还发现,所有数全被学生1分到,每往后面一个学生被分到的书的本数就减少1,最后学生n只被分到了1本书。那么最终答案就是有1+2+3+……+n(种)不同的分法

三、流程图讲解


                                               图2

        首先程序开始。向角色提问:“把一些书分给大家,有多少种不同的分法?(说法不唯一)。然后新建(全局)变量:书的本数、第一个数、最后一个数、倒数第二个数、书的分法。给最后一个分到的数命名为n,这个可能是奇数也可能是偶数,所以先不要固定最大值,再将第一个人分到的数量令它为1。为了方便,可以把1放到最后的算式里。接下来判断它是否被2整除。若能被2整除,则选用(1+n)×(n÷2)的公式,否则选用[1+(n+1)]×[(n+1)]÷2]-(n+1)的公式。最后让角色说:“有××种不同的分法。”这地方就算是答语了。最后程序结束。

四、代码示例

        首先程序准备运行。

绿旗被点击

        我这里以问“把多少本书分给大家”为例进行提问。

询问把多少本书分给大家?

将书的本数设为回答

这是书有多少本已经明确出来了,但是到第有多少种分法呢?还要通过将总本数除以2,来判段计算最终的结果到底选用那个公式。

如果书的本数除以2的余数=0那么

将第一个数设为1

将最后一个数设为回答

将书的分法设为第一个数+最后一个数×(最后一个数÷2

连接书的分法有书的分法

否则

将第一个数设为1

将倒数第二个数设为回答-1

设为回答-1了,就意味着总数是奇数,不能与2全部配对,需要把最后一个数单独拿出来算,这样就有了“最后一个数-1=倒数第二个数”。为了简洁,我们把它进行了如下拆分:

将书的分法设为[第一个数+倒数第二个数]×最后一个数-1

连接书的分法有书的分法

五、课后延伸

1、既然有不同的分法,那么当然也就有相同的分发,虽然“不”与“相”只有一字之差,但解题方法上却有一定大的不同。请课后大家尝试去探索。

2、解决了第1问之后,请大家想一下,如果要是执行相同的分发的脚本,还有可能实现吗?理由又是什么呢?


Scratch与数学的整合2的评论 (共 条)

分享到微博请遵守国家法律