小区附近新开了一家书店,周五放学后,岭童小子直奔书店,他想买一本关于算法的书,周末在家自学。他站在计算机类的书架前来来回回地翻看着,终于精挑细选了一本。
回到家的岭童小子意犹未尽,决定“为难”一下星空,逗他玩玩。
星空真的有“读心术”。不过,你也可以拥有同款“读心术”。让我们一起来看看星空是怎么做到的吧。
第一步,确定猜价区间后,在1—100的区间内取中间值50。代码见图1。
第二步,调整区间上限。因为第一次猜测的50高于正确价格,所以第二次猜价时把最高价格设置为50,将猜价区间调整为1—50。再次猜测价格,在1—50的区间内取中间值25。代码见图2。
第三步,调整区间下限。因为第二次猜测的25低于正确价格,所以第三次猜价时把最低价格设置为25,將猜价区间调整为25—50。再次猜测价格,在25—50的区间内取中间值37。代码见图3。
如此反复,根据提示调整区间,并从新的区间内取中间值,直到猜对为止。
以中间值作为新的猜测数据,每猜一次,猜价区间都会减少一半,这样能大大提高猜价效率,这就是“读心术”的秘诀所在。在计算机编程中,这种方法叫“二分算法”。
你们看懂了吗?扫描下方小程序码,看看长沙市芙蓉区马坡岭小学学生的优秀作品吧!
曹晓敏 :湖南省特级教师、省优秀科技辅导员,长沙市首批卓越教师、市骨干教师。长沙市芙蓉区马坡岭小学信息技术教师。