Scratch图解汉诺塔问题
2020-03-13
汉诺塔(Tower of Hanoi)源于印度传说中,大梵天创造世界时造了三根金刚石柱子,其中一根柱子自底向上叠着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
在进行转移操作时,都必须确保大盘在小盘下面,且每次只能移动一个圆盘,最终c柱上所有的盘子也是从上到下按从小到大的顺序摆放。
当a柱子上只有一个盘子时只要把那个盘子直接移到c就行了,有两个盘子的话把1号盘先移到b柱,再把2号盘移到c柱,最后把b柱上的1号盘移到c柱就行了,那么如果有n个盘子呢?
这里我们先把上方的n-1个盘子看成整体,这下就等于只有两个盘子,自然很容易了,我们只要完成两个盘子的转移就行了,再把前n-2个盘子看作一个整体,就这样一步步向前找到可以直接移动的盘子,n-3……,2,1,最终,最上方的盘子是可以直接移动到c柱的。
看到这里其实就已经有了程序的设计思路,那就是递归,这个时候只要理解递归最终解决的问题是什么就行了,中间的事交给程序,递归可以很绕也可以很直接,我们按照最直接的理解就行了。
如果你想弄清楚每一步执行过程,那么你可以继续往下看,确实有点乱,切记别把自己绕晕了。
举个例子:当n=7时,前6个要想办法成功移动到b柱上,7号是Boss,他不管上面的6个小弟用什么办法,我可以先等着,于是7号在等着上面6个完成移到b柱,现在6是临时老大,他也想去c柱,于是他命令前5个移到b柱,他等着,5号也采取之前两个的做法,于是这个命令一直往前传,没办法,上面被压着自己也没法动啊。
终于到了1号,他是现在唯一能动的,于是1号移动到了b柱,好了,2号可以到c柱。不过a柱上还有3号,于是让1号移到c柱,3号可以到b柱了,之后1号和2号再想办法到b柱,于是1、2、3号在b柱,4号也要到b柱啊,1、2、3号你们按照刚才的办法到c柱,空出b柱给4号。后面的5号、6号都重复这样的操作,终于前6号移动到b柱,7号直接跑到了c柱,于是剩下在b柱的6个小弟还要再干一遍他们在a柱上干的事。
库克建议小孩首选编程语言
2019年12月苹果公司首席执行官蒂姆·库克(Tim Cook)在新加坡访问时接受采访,呼吁当地儿童学习编码,并称其是一种“全球语言”。此外,他还谈到在新加坡开设第三家门店的打算。
呼吁孩子从小学编码
这是库克自2011年接任苹果首席执行官以来首次访问新加坡,在为期两天的新加坡之行中,推广苹果开发者生态系统是库克的重要议程之一,他希望孩子们上学时就能接触到编码。
库克称,如果孩子们只能在母语之外学习一种语言,那就应该是编码,因为“编码是一种全球语言”。他还称:“即使是最常用的语言也有区域性限制,包括英语和汉语。”
Swift Playgrounds 激发编程爱好
库克指出,虽然编码不会为人类建立新的疆域,但它提供了一个创造性解决问题的机会,因此应该被引入到数学、历史或英语课程中。
苹果CEO近期还专门在微博上向一位年仅8岁的中国朋友送上了生日祝福,这名8岁孩子是编程达人,今年8月份他在B站上上传了第一个编程视频,名为“小学生教你学编程”的Swift Playgrounds 通关教程,已经获得了20W+的播放量。他爸爸“周花卷”透露,在很小的时候,Vita就已经展现出了超前的数学和逻辑思维,4岁半开始Vita就接触与编程有关的知识了,5岁半左右,Vita就开始上手写代码了。
Scratch少儿编程蓝桥杯真题解析
今天我们来看一下2019年第十一届蓝桥杯Scratch北京赛区的试题,最后一道题难度大大提升。
要求:
1.沙漠里有四个树坑,小树呈虚像状态位于四个树坑中
2.每次按下鼠标,多个水滴从鼠标处呈抛物线落下
3.浇水五次后,小树从树坑中长出来
解析:
这道题看似没什么难度,因为小树没有成长过程,浇水直到虚像结束。但是题目明确要求水要呈抛物线落下,对于小朋友们难度很高。但是可以参考之前的竞赛习题:小象喷水。
水滴程序:
1.隐藏,置顶最上层。创建浇水次数变量
2.重复执行浇水,直到浇水次数为5
3.如果鼠标被按下,就开始执行浇水操作
4.澆水,实际上就是让水滴克隆体进行抛物线运动。下面会放出参考程序,给x,y坐标一个变化值,同时y方向上的变化值也在不停地改变
小树程序:
1.开始,虚像特效100
2.接收到小树长大,虚像变为0
小结:
这道题是一道比较综合的题目,难点主要在于抛物线程序。小朋友们没有接触过的物理知识,就很难以制作甚至理解。简单来说,x在改变的同时,y坐标减少,y坐标减少的速度越来越快。