嶺童小子喜歡編程,為此,他參加了學(xué)校的編程社團(tuán)。每周五下午,喜歡編程的同學(xué)們就會(huì)聚在社團(tuán),一起學(xué)習(xí),一起進(jìn)步。
上個(gè)月,嶺童小子不論是學(xué)習(xí)、運(yùn)動(dòng),還是小干部工作,都完成得非常好,榮獲了“班級(jí)之星”的稱號(hào)。班主任盛老師許諾,這個(gè)星期五,獲得“班級(jí)之星”的同學(xué)可以帶一樣喜歡的物品來(lái)學(xué)校。例如,可以帶上自己養(yǎng)的小烏龜給同學(xué)們看看,或是帶上手工作品到班級(jí)來(lái)展示……嶺童小子特別高興,他想把自己的好朋友——星空帶來(lái)學(xué)校。星期五下午有社團(tuán)課,他想帶著星空去編程社團(tuán),讓同學(xué)們都認(rèn)識(shí)一下。
善解人意的盛老師答應(yīng)了,但是他們約定,星空不能影響課堂紀(jì)律。
嶺童小子開(kāi)心極了。在滿滿的期待中,星期五終于到了,嶺童小子帶著星空來(lái)到編程社團(tuán)。社團(tuán)課還沒(méi)開(kāi)始,教室里的同學(xué)們圍著星空,七嘴八舌地好不熱鬧。
星空看到同學(xué)們這么熱情,心里有點(diǎn)得意,想在大家面前露一手。他故作神秘地說(shuō):“只要你們回答兩個(gè)問(wèn)題,我就能猜出咱們社團(tuán)有多少人。全體起立!請(qǐng)大家按照1—11循環(huán)報(bào)數(shù),并告訴我最后一位同學(xué)報(bào)數(shù)是多少?!?/p>
大家都樂(lè)了,想看看星空到底有什么本事,于是都配合星空,按要求開(kāi)始報(bào)數(shù):1、2、3……最后一位同學(xué)的報(bào)數(shù)為9。
“現(xiàn)在請(qǐng)大家按照1—7循環(huán)報(bào)數(shù),并告訴我最后一位同學(xué)報(bào)數(shù)是多少。”
同學(xué)們?cè)僖淮伟凑招强盏囊髨?bào)數(shù):1、2、3……最后一位同學(xué)報(bào)數(shù)為6。
“請(qǐng)看,咱們社團(tuán)人數(shù)為……”星空說(shuō)出一個(gè)數(shù)字后,立馬贏得了一片掌聲。
“星空太厲害了!”同學(xué)們都嘖嘖稱贊。一旁的嶺童小子也自豪不已,星空真是好樣的!
嶺童小子心里盤(pán)算著:不過(guò),星空到底使用了什么獨(dú)門(mén)秘訣?回頭得問(wèn)問(wèn)曉敏老師,讓我也學(xué)學(xué)。
曉敏老師:
嘿嘿,星空這次用的是“窮舉法”。
第一步,把“9”存放在“1—11循環(huán)報(bào)數(shù)結(jié)果”這個(gè)變量里,把“6”存放在“1—7循環(huán)報(bào)數(shù)結(jié)果”這個(gè)變量里。如果有同學(xué)回答的數(shù)字是“11”或“7”,則這兩個(gè)變量里存放的數(shù)據(jù)為0。代碼見(jiàn)圖1。
為什么要設(shè)置為0?同學(xué)們自己思考一下。
第二步,尋找符合條件的數(shù)字。從數(shù)字1開(kāi)始一一嘗試,如果這個(gè)數(shù)除以11的余數(shù)與“1—11循環(huán)報(bào)數(shù)結(jié)果”這個(gè)變量里的數(shù)字相等,且這個(gè)數(shù)除以7的余數(shù)與“1—7循環(huán)報(bào)數(shù)結(jié)果”這個(gè)變量里的數(shù)字相等,那就說(shuō)明找到了,這個(gè)數(shù)就是社團(tuán)總?cè)藬?shù)。
如果不符合以上條件,則說(shuō)明這個(gè)數(shù)不對(duì),把“找數(shù)”這個(gè)變量里的數(shù)字加1,得到新的數(shù)字,再根據(jù)上述的兩個(gè)條件來(lái)判斷。如此重復(fù)執(zhí)行、依次尋找,直到出現(xiàn)符合條件的第一個(gè)數(shù)字,找數(shù)環(huán)節(jié)就可以結(jié)束了。代碼見(jiàn)圖2。
注意,這個(gè)環(huán)節(jié)需要設(shè)置一個(gè)“判斷”變量來(lái)控制執(zhí)行次數(shù)。判斷=1,則表示找到了這個(gè)數(shù),找數(shù)環(huán)節(jié)結(jié)束。如果沒(méi)有這個(gè)判斷變量,則會(huì)陷入無(wú)限循環(huán)中。
利用計(jì)算機(jī)超快的運(yùn)算速度,將求解對(duì)象一一列舉,逐一驗(yàn)證結(jié)果是否滿足給定條件,窮舉完所有對(duì)象,問(wèn)題就會(huì)得以解決,這種方法叫“窮舉法”。
只要時(shí)間足夠,窮舉法能夠得出所有的正確答案。所以,在運(yùn)用窮舉法解決問(wèn)題時(shí),求解對(duì)象應(yīng)該是有限的,并且有明顯的窮舉范圍。
程序作品展示:
掃描下方小程序碼,看看長(zhǎng)沙市芙蓉區(qū)馬坡嶺小學(xué)的優(yōu)秀作品吧!
曹曉敏:湖南省特級(jí)教師,湖南省優(yōu)秀科技輔導(dǎo)員,長(zhǎng)沙市首批卓越教師,長(zhǎng)沙市骨干教師,長(zhǎng)沙市芙蓉區(qū)馬坡嶺小學(xué)信息技術(shù)教師。
發(fā)明與創(chuàng)新·小學(xué)生2023年6期