


小區附近新開了一家書店,周五放學后,嶺童小子直奔書店,他想買一本關于算法的書,周末在家自學。他站在計算機類的書架前來來回回地翻看著,終于精挑細選了一本。
回到家的嶺童小子意猶未盡,決定“為難”一下星空,逗他玩玩。
星空真的有“讀心術”。不過,你也可以擁有同款“讀心術”。讓我們一起來看看星空是怎么做到的吧。
第一步,確定猜價區間后,在1—100的區間內取中間值50。代碼見圖1。
第二步,調整區間上限。因為第一次猜測的50高于正確價格,所以第二次猜價時把最高價格設置為50,將猜價區間調整為1—50。再次猜測價格,在1—50的區間內取中間值25。代碼見圖2。
第三步,調整區間下限。因為第二次猜測的25低于正確價格,所以第三次猜價時把最低價格設置為25,將猜價區間調整為25—50。再次猜測價格,在25—50的區間內取中間值37。代碼見圖3。
如此反復,根據提示調整區間,并從新的區間內取中間值,直到猜對為止。
以中間值作為新的猜測數據,每猜一次,猜價區間都會減少一半,這樣能大大提高猜價效率,這就是“讀心術”的秘訣所在。在計算機編程中,這種方法叫“二分算法”。
你們看懂了嗎?掃描下方小程序碼,看看長沙市芙蓉區馬坡嶺小學學生的優秀作品吧!
曹曉敏 :湖南省特級教師、省優秀科技輔導員,長沙市首批卓越教師、市骨干教師。長沙市芙蓉區馬坡嶺小學信息技術教師。