Python中的取模運(yùn)算方法
所謂取模運(yùn)算,就是計(jì)算兩個(gè)數(shù)相除之后的余數(shù),符號(hào)是%。如a % b就是計(jì)算a除以b的余數(shù)。用數(shù)學(xué)語(yǔ)言來(lái)描述,就是如果存在整數(shù)n和m,其中0 <= m < b,使得a = n * b + m,那么a % b = a - n * b = m.
取模運(yùn)算的兩個(gè)操作數(shù)都必須是整數(shù),可以是負(fù)整數(shù),但是b不可以是0,因?yàn)楸怀龜?shù)不能為0嘛。
當(dāng)a和b中存在負(fù)整數(shù)時(shí),首先計(jì)算|a|%|b|=c,然后a%b的符號(hào)與b一致。也就是說(shuō),如果b>0,則a%b=c;如果b<0,則a%b=-c
比如:
好了,上面是以前我對(duì)取模運(yùn)算的認(rèn)識(shí),我記得<<C++ Primer>>上也是這么寫的。但是,在Python中,我隨便輸入了一個(gè)浮點(diǎn)數(shù)進(jìn)行取模運(yùn)算,竟然也是可以的,驚呆了==
不過(guò)呢,仔細(xì)觀察就會(huì)發(fā)現(xiàn),不知道它是怎么計(jì)算的?。≡趺崔k呢,我們首先來(lái)看看,浮點(diǎn)數(shù)的取模在數(shù)學(xué)上要怎么定義呢?
浮點(diǎn)數(shù)取模的數(shù)學(xué)定義:對(duì)于兩個(gè)浮點(diǎn)數(shù)a和b,a % b = a - n * b,其中n為不超過(guò)a / b的最大整數(shù)。
例如,
3.5 / 2 = 1.75,取n = 1,則3.5 % 2 = 3.5 - 1 * 2 = 1.5
-3.5 / 2 = -1.75,取n = -2,則-3.5 % 2 = -3.5 - (-2) * 2 = 0.5
3.5 / -2.5 = -1.4,取n = -2,則3.5 % -2.5 = 3.5 - (-2) * (-2.5) = -1.5
另外,C++中有一個(gè)函數(shù)fmod可以用來(lái)計(jì)算浮點(diǎn)數(shù)的取模。
總結(jié):
取模運(yùn)算的兩個(gè)操作數(shù)a和b可以是整數(shù),也可以是浮點(diǎn)數(shù);可以是正數(shù),零(b不能為0),也可以是負(fù)數(shù)。不管是整數(shù)還是浮點(diǎn)數(shù),是正數(shù)還是負(fù)數(shù)還是零,只需要抓住取模的數(shù)學(xué)定義即可。統(tǒng)一的數(shù)學(xué)定義如下:
對(duì)于兩個(gè)數(shù)a和b(b不為0),a % b = a - n * b,其中n為不超過(guò)a / b的最大整數(shù)(這里的除就是正常的除,不是整除)。
需要注意的是,整數(shù)的取模運(yùn)算的定義和浮點(diǎn)數(shù)的是一樣的,所以計(jì)算方法也是一樣的。最前面提供的整數(shù)取模的方法,其實(shí)本質(zhì)上跟浮點(diǎn)數(shù)取模的方法是一致的,只不過(guò)這種方法可能在含有負(fù)整數(shù)的整數(shù)取模中比較方便而已。
以上這篇Python中的取模運(yùn)算方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
500行代碼使用python寫個(gè)微信小游戲飛機(jī)大戰(zhàn)游戲
這篇文章主要介紹了500行代碼使用python寫個(gè)微信小游戲飛機(jī)大戰(zhàn)游戲,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10Python使用xlrd模塊操作Excel數(shù)據(jù)導(dǎo)入的方法
這篇文章主要介紹了Python使用xlrd模塊操作Excel數(shù)據(jù)導(dǎo)入的方法,涉及Python操作xlrd模塊的技巧,需要的朋友可以參考下2015-05-05python中join與os.path.join()函數(shù)實(shí)例詳解
os.path.join()函數(shù)用于路徑拼接文件路徑,下面這篇文章主要給大家介紹了關(guān)于python中join與os.path.join()函數(shù)的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-03-03scrapy實(shí)踐之翻頁(yè)爬取的實(shí)現(xiàn)
這篇文章主要介紹了scrapy實(shí)踐之翻頁(yè)爬取的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01在?pytorch?中實(shí)現(xiàn)計(jì)算圖和自動(dòng)求導(dǎo)
這篇文章主要介紹了在?pytorch?中實(shí)現(xiàn)計(jì)算圖和自動(dòng)求導(dǎo),文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06