用python解中考數(shù)學(xué)規(guī)律題

以下為2018成都市的中考數(shù)學(xué)真題B卷第23題:


image.png

分析:
一、這是一道常規(guī)的找規(guī)律考題,一般每年的中考數(shù)學(xué)都會(huì)涉及。根據(jù)題的難易程度,位置一般會(huì)出現(xiàn)在B卷的第二題,以填空的方式出現(xiàn)。
二、這一道題在一般的規(guī)律題的基礎(chǔ)上加入了兩個(gè)點(diǎn),
??①牽涉到簡(jiǎn)單的整式運(yùn)算。
??②用S1,S2,S3,S4,S5......分別來(lái)表示每一項(xiàng),有誤導(dǎo)考生將其與等差等比數(shù)列的前n項(xiàng)和中的“Sn”混淆的動(dòng)機(jī),以增大考題難度。
??③單項(xiàng)表達(dá)式需要依賴(lài)上一項(xiàng)的結(jié)果,加大考題難度
三、常規(guī)解題思路:
??第一步:根據(jù)第一項(xiàng)表達(dá)式,分別計(jì)算出后面每一項(xiàng)的表達(dá)式,直到發(fā)現(xiàn)規(guī)律
??第二步:分析規(guī)律,總結(jié)規(guī)律,根據(jù)規(guī)律求出目標(biāo)項(xiàng)

具體操作:
??①分別求出前面的每一項(xiàng)

S2 = -s1-1 = -(1/a)-1 = -(a+1)/a
S3 = 1/s2 = -a/(a+1)
S4 = -s3-1 = a/(a+1) -1 = -1/(a+1)                          初見(jiàn)端倪
S5 = 1/s4 = -(a+1) = -a-1                                   有點(diǎn)意思
S6 = -s5-1 = -(-a-1)-1 = a                                  若隱若現(xiàn)
S7 = 1/s6 = 1/a                                             恍然大悟
S8 = ....

??②分析規(guī)律

  • 很明顯:
    第8項(xiàng)為: -(a+1)/a,第9項(xiàng)為: -a/(a+1),第10項(xiàng)為:-1/(a+1),第11項(xiàng)......即后面項(xiàng)的表達(dá)式均為前6項(xiàng)的循環(huán)。
  • 以此類(lèi)推,要求出2018項(xiàng),只需要確定出2018項(xiàng)在循環(huán)的過(guò)程中處于前六項(xiàng)的哪一項(xiàng)即可。
  • 方法:2018除6再取余,余數(shù)為2,則說(shuō)明循環(huán)完若干輪后還落單了兩次,對(duì)照前六次中,第二項(xiàng)為-(a+1)/a,故答案即為-(a+1)/a

接下來(lái)我們用程序來(lái)實(shí)現(xiàn):
方法一:
為了模擬運(yùn)算2018次,故我們最外層用while實(shí)現(xiàn)不停地去循環(huán),while里面則用for遍歷這重復(fù)的六個(gè)結(jié)果。

# 第一步:將前六項(xiàng)依次存入my_list列表
my_list = ['1/a', '-(a+1)/a', '-a/(a+1)', '-1/(a+1)', '-a-1', 'a']
# 根據(jù)目標(biāo)項(xiàng)數(shù)定位到my_list中的對(duì)應(yīng)項(xiàng)
cnt = 0
flag = 0
while True:
    for k in my_list:
        cnt += 1
        if cnt == 2018:
            flag = 1
            print(k)
            print('遍歷了{(lán)}次'.format(cnt))
            break
    if flag == 1:
        break

效果:


image.png

這種方法雖是真實(shí)的模擬了2018次循環(huán)遍歷,但著實(shí)麻煩,接下來(lái)我們用取模(即取余數(shù))的方式來(lái)實(shí)現(xiàn)以上功能。
方法二:

# 第一步:將前六項(xiàng)依次存入my_list列表
my_list = ['1/a', '-(a+1)/a', '-a/(a+1)', '-1/(a+1)', '-a-1', 'a']
# 根據(jù)目標(biāo)項(xiàng)數(shù)定位到my_list中的對(duì)應(yīng)項(xiàng)
cnt = 0
for i, v in enumerate(my_list):
    cnt += 1
    if i == 2018 % 6 - 1:
        print(v)
        print('遍歷了{(lán)}次'.format(cnt))
        break

效果:


image.png

怎么樣,瞬間省去了2016次運(yùn)算,而且代碼也精簡(jiǎn)了,是不是很酷。
但我們的計(jì)算機(jī)可是最不怕辛苦了,而且最擅長(zhǎng)的就是重復(fù)的去做運(yùn)算,所以,遇到類(lèi)似的數(shù)學(xué)題,我們還可以丟給計(jì)算機(jī)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容