日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Pyhton为什么这么厉害?无意中从一道奥数题发现Python真的爽翻了

發布時間:2024/9/30 python 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Pyhton为什么这么厉害?无意中从一道奥数题发现Python真的爽翻了 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在小編我剛接觸Python的時候,心里就在想:Python的代碼寫這么少,就可以實現一個小功能了!確實也有點方便啊!或許出于程序員,我很想將每一門語言都學一遍,不管學好學差,至少我都了解,心里有個底,總是好的!

之前在一個平臺有看到這么一張圖片,引發了我的興趣:

這個題目有點意思!不過對于做這題的小朋友來說,確實難度有點大!

這道題本身不難,只需要簡單的推理就可以做出來:

3位數+3位數等于4位數,那么“要”只能是1。
同上,“好”+“要”>=10,因此“好”只能是9,“做”是0。
個位是兩個“好”相加,于是“事”是8。

所以答案是,“要做好事”=1098。不過今天的重點并不在這里,因為我這張圖片下方貼了一段代碼,大概是有哪位家長無聊寫的:

這里有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、 爬蟲、數據分析、數據可視化、機器學習等。 小編這里推薦加小編的python學習群:895,817, 687


程序員現在已經很普遍了,隨便一個什么事情,或許程序員都可以以代碼的形式解答了!

不過仔細看看這段代碼貌似是Arduino的C吧!

Anyway,程序的思路很簡單,用窮舉法把所有的數字都試一遍,找出滿足條件(加法等式)的組合。作為一個Python粉,我覺得這樣的代碼實在缺乏美感,特別是套了4層循環,而且還用了一個特別low的判斷來檢查4個數字是不是相互重復(根據題目,每個漢字代表一個不同的數字,所以相互之間不應該重復)。這道題目只是4位數,要是位數更多的話,這么寫真的要累死啦。

那么用Python寫這樣一個程序,能不能簡潔一點呢?我們換個思路,4個漢字,每個漢字的取值范圍都是0-9,且相互之間不重復,這相當于從包含10個元素的集合[0,9]中任取4個元素的排列(permutation),即P(10,4)。學過排列組合的話我們就可以計算出P(10,4) = 10x9x8x7 = 5040,也就是說一共有5040種不同的排列方式。

Python里面有一個神器叫迭代器(iterator),而且Python還自帶了itertools標準庫,用來產生各種各樣的迭代器,其中就包括排列組合迭代器。這樣一來事情就簡單了,我們先產生一個排列迭代器,然后再用for迭代它,就可以找出滿足條件的排列了,不需要寫4層循環,也不需要檢查4個數字是否相互重復:

只需要5行代碼!而且其實最后一行break沒有也無所謂,上面那段C的代碼也沒有做循環跳出嘛。運行一下看結果:

YAO:1, ZUO:0, HAO:9, SHI:8

完美!

總結

以上是生活随笔為你收集整理的Pyhton为什么这么厉害?无意中从一道奥数题发现Python真的爽翻了的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。