用 python 解 NOIP 競賽題

以下為2017年全國 NOIP 提高組復賽的第1題:

image.png

image.png

????--------------------------------------- 問題展示完畢 -----------------------------------------

怎么樣菜秦,讀完題是不是感覺特別懵舶掖。—— 我是誰眨攘,我在哪里?

接下來我們來慢慢解析這道讓人摸不著頭腦的競賽題共螺。

一、首先翻譯一下題的意思:

  • 假設璃谨,現(xiàn)在人民幣只有兩個幣種鲤妥,面值你定
  • 對面值數(shù)字的要求是這兩個數(shù)字不能有公約數(shù)(除1這個公約數(shù)外)
    ?? 例如:2和5
  • 問用這兩個面值的錢拱雏,不能湊齊的最大的價錢是多少
  • 當然,前提是你有任意多的錢

是不是稍微要清晰一些了呢铸抑。

二、那我們接下來用python寫一個程序來完成這道題:

整個過程分兩步:
第一步:借助 python 找規(guī)律劃范圍

# 先找出能湊出來的金額
def myFunc(a, b):  # 輸入a,b 兩個互素的面值
    c = 1  # 從1開始找出能湊出的金額
    while True:  # 不斷循環(huán)蒲赂,電腦配置低的,請遠離滥嘴,前方危險
        for i in range(c):
            an01 = a * i
            for j in range(c):
                an02 = b * j
                if an01 + an02 == c:  # 一旦找到能湊出當前金額c的i和j,打印出來
                    print(c, "=", a, '*', i, '+', b, '*', j)
        c += 1  # 金額不斷上漲若皱,上不封頂


if __name__ == "__main__":
    myFunc(3, 5)

結果:


image.png

如果將面值設置為7,5

結果:

image.png

再如果換成 7,9

結果:


image.png

綜上:

我們可以發(fā)現(xiàn)走触,不可組合的面值均集中在靠前的位置,但有多靠前敛腌,具體又在哪個位置呢惫皱?
我們姑且假定這個數(shù)字就在 兩數(shù)的乘積 之內像樊,而且事實也是這樣的逸吵。大家可以多試幾對數(shù)字,檢驗一下足绅。

二、范圍找到后氢妈,我們再來考慮用 python 找出范圍內的不可組合的金額值:

??備注:上面的程序是一個死循環(huán)段多,需要手動結束程序,建議不懂操作的小伙伴謹慎運行进苍,但下面這個程序就不一樣了,小伙伴們盡管去運行吧觉啊。

  # 找出兩數(shù)乘積范圍內的可組合數(shù)據(jù)
def myFunc(a, b):
    c = a * b
    my_list = []  # 創(chuàng)建存放所有組合出來的金額值
    
    # 找尋過程 -- 不斷對比
    for i in range(0, c):
        an01 = a * i
        for j in range(c):
            an02 = b * j
            if an01 + an02 <= c:  # 只找在乘積范圍內的組合杠人,節(jié)省運算次數(shù)
                my_list.append(an01 + an02)  # 將符合的金額添加進目標列表
    return list(set(sorted(my_list)))  # 返回經過去重和排序的目標列表


# 找到最大的那個不能組合的金額
def getMax(a, b):
    my_list = myFunc(a, b)  # 調用找可拼湊數(shù)據(jù)函數(shù)得到目標列表
    my_list.sort(reverse=True)  # 將目標列表反序排列

    # 判斷目標列表是否連續(xù)宋下,并輸出斷點數(shù)中的最大值
    y = my_list[0] + 1  # 創(chuàng)建對比參數(shù)
    for x in my_list:
        if x + 1 != y:
            print(x, y)
            break
        y = x
    return y - 1  # 返回最大斷點值


if __name__ == "__main__":
    print(getMax(16, 27))

結果為:


image.png

不知道大家有沒有發(fā)現(xiàn)一個問題辑莫,這個最大不可組合數(shù)據(jù)似乎有一定的規(guī)律,規(guī)律為:

c = a * b - a - b
( 其中的a 和 b 為你輸入的兩個互為素數(shù)的幣種面值各吨,c為它們不能組合的金額 )
大家可以多試幾組數(shù)據(jù),驗證一下伺帘。

怎么樣,通過兩個程序伪嫁,我們就很容易的解決了這個看起來不那么友好的競賽題偶垮。
此時张咳,是不是覺得 python 很酷呢似舵!
?
?

筆者會不定時的更新一些跟python相關又和數(shù)學相關的一些有趣的程序,喜歡就關注我吧龙助。

?

特別警示:本文為作者原創(chuàng)作品蛛芥,禁止不經過本人同意就將其轉載用于商業(yè)用途,否則將予以追究仅淑。
處于學習分享轉載請附上出處鏈接,謝謝涯竟!

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市银酬,隨后出現(xiàn)的幾起案子筐钟,更是在濱河造成了極大的恐慌揩瞪,老刑警劉巖盗棵,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件纹因,死亡現(xiàn)場離奇詭異喷屋,居然都是意外死亡瞭恰,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門恶耽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颜启,“玉大人,你說我怎么就攤上這事缰盏。” “怎么了口猜?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長川抡。 經常有香客問我须尚,道長,這世上最難降的妖魔是什么恨闪? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任,我火速辦了婚禮老玛,結果婚禮上,老公的妹妹穿的比我還像新娘蜡豹。我一直安慰自己溉苛,他們只是感情好镜廉,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布娇唯。 她就那樣靜靜地躺著,像睡著了一般塔插。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上想许,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音糜烹,去河邊找鬼漱凝。 笑死疮蹦,一個胖子當著我的面吹牛碉哑,可吹牛的內容都是我干的。 我是一名探鬼主播扣典,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼贮尖,長吁一口氣:“原來是場噩夢啊……” “哼笛粘!你這毒婦竟也來了湿硝?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤示括,失蹤者是張志新(化名)和其女友劉穎痢畜,沒想到半個月后垛膝,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體丁稀,經...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年凿可,在試婚紗的時候發(fā)現(xiàn)自己被綠了授账。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惨驶。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡敛助,死狀恐怖,靈堂內的尸體忽然破棺而出辜腺,到底是詐尸還是另有隱情乍恐,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布茵烈,位于F島的核電站,受9級特大地震影響加匈,放射性物質發(fā)生泄漏。R本人自食惡果不足惜雕拼,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一粘招、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧洒扎,春花似錦、人聲如沸袍冷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽乃戈。三九已至褂痰,卻和暖如春症虑,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背谍憔。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工主籍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留逛球,地道東北人。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓颤绕,卻偏偏與公主長得像,于是被迫代替她去往敵國和親奥务。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內容

  • 本文主要從數(shù)學原理的角度探討挡篓。從數(shù)學的角度理解帚称,線性模型的輸入是一組特征向量x,輸出也是一組特征向量闯睹。 線性回歸可...
    安帥帥閱讀 541評論 0 3
  • 背簍里 載著壓彎脊梁的種子 皮箱里 塞滿浣洗多次的衣衫 啟程了 迎著花香與薄霧 淋著雨露與朝陽 哼著小調 踏出喑鳴...
    文時柒閱讀 212評論 0 6
  • 【23】點蒼山 心下一急楼吃,人似箭飛蛛壳。只見屋內一蒙古侍衛(wèi)正劍指楊玉環(huán)所刀。一旁則端坐著一位壯實大漢,著蒙古...
    一點文字閱讀 1,640評論 28 69
  • 小說BB機第一期:他穿越到殺戮亂世寡壮,交鋒世上英雄,搏一個名震古今况既! 《小說BB機》欄目主持人@書螢/監(jiān)制@末果 本...
    mini小說菌閱讀 350評論 0 0