校园动态:
首页 > 信息动态  > 校园动态

只有计算机才能完成的小学数学作业

来源:www.syhlxxt.com 发布时间:2018年12月11日

沈阳计算机专业学校了解到:记得在上个月,微博上有一则热议得新闻:小学数学老师布置作业,要求“数一亿粒米”。

 

沈阳计算机专业学校

网友大多数是以吐槽的态度去看待这件事,也有人指出能用估算的方法,这是一道考察发散思维的题目。

一开始我也觉得这个题目很荒唐,似乎是不可能完成的任务。但这个细细想来值得玩味,我在思考一个问题:如果从计算机的角度去看,如何才能快速地数一亿粒米呢?

首先我们先将问题简单地抽象一下:

抽象过程
作为有煮饭经验的我来说,米中是存在一些杂质的,所以数米应该不仅仅是单纯的数数,其中还有一个判断是米还是杂质的过程。

那么可以将其视作一个长度为L的数组(L大于一亿),这个数组是随机生成的,但是满足数组的每个元素是一个整型类型的数字(0或1)。约定:元素如果为1,则视作有效的“米”;如果为0,则视作无效的“杂质”。

为了更快地完成计算,并行的效率应该是比串行来得高。

那么我们将一个人视作一个工作线程,全家一起数米的情景可以视作并发情况。

有了以上的铺垫,接下来就是核心的问题,如何才能快地数一亿粒米。我不妨假设以下的几种情景:

情景一:串行
今天刚上小学四年级的小季放学回家,妈妈正在做饭,爸爸正在沙发上刷公众号「字节流」。

小季说:“妈妈,今天老师布置了一项作业,要数一亿粒米。”

妈妈:“找你爸去。”

爸爸:“?”

于是爸爸一个人开始数米,开启一个循环,遍历整个数组进行计算。

相关文章