凡是呈現明顯週期性的,比如十二生肖(以十二為週期),比如星期(以 7 為週期),比如天乾(以 10 為週期),比如地支(以 12 為週期),最佳的解決方案就是取模(或者簡單地說對該週期取餘數)。
在 c語言的環境下,將乙個整數對 2 不斷地做整除:
也即除了 0/1 之外的任何正整數,不論是奇數還是偶數,不斷地對 2 整除的最終結果都會是 1;
15/2 = 7 /2 = 3 /2 =1
如果乙個數(二進位制形式 n 位)對 2k
整除和取模:
不妨以 10(1010) 和 8(1000) 為例:[0
,5)5
⇒0[5
,10)5
⇒1⋮[
5n,5
n+1)
5⇒n
x%5⇒
[0,5
)/0,
1,2,
3,4x
%n⇒[
0,n)
/0,1
,2,…
,n−1
10%7
=3就以今天 2016 年 6 月 22 為星期三,一周也即 7 天後的仍是星期三,則10天後是星期六,10 對 7 取模的含義正在與,獲取餘數,3(星期三)+3(餘數3) = 6。
計算星期幾,不可避免地要同 7 的取模運算掛上聯絡。
2016 年的元旦是星期 5,則 2017 年元旦是星期星期日(5+2=7),2023年是閏年。
我們繼續公升級這一問題,計算任意一天的一年後的這一天是星期幾。這道題目比計算元旦稍微複雜的是,需要判斷這一天到一年後的今天所跨越的 2 月是有 28 天還是 29 天,而不直接取決當年是否是閏年。
以 2016 年 6 月 22 日為例,這一天是星期三,則一年後的今天,即 2017 年 6 月 22 是星期幾?
從 2016 年 6 月 22 到 2017 年 6 月 22 中間經歷的 2 月,是 2017 年的二月,28天,也即從 2023年 6 月 22 到 2017 年 6 月22,所經歷的一年是 365 天。
則 2017 年 6 月 22 是 星期 4 (3 + 1).
查閱萬年曆可知:1900 年是鼠年,2000 年是龍年,
比如我們要計算 1987 年的屬相,87 % 12 = 3,鼠年之後的第四年,那就是 4 兔。
比如我們要獲得 2016 年的屬相,16 % 12 = 4,龍年之後的第四年,那就是 4+5 = 9 猴年。
乙個數對 a 取模,所得的結果要小於 a,取模相當於除法運算的求餘,餘數自然小於除數;
Python的整除和取模運算
1 模運算的計算原理是這樣的 假設想求的a x y,a的值是通過如下公式算出來的 a x x y y,且除法是按照整數除法來運算的,所以將你的數字代入公式 17 10 17 17 10 10 17 2 10 3.產生這個結果的關鍵在於程式的取模公式,保證了y是正數,模運算的結果就是 0,y y是負數...
python模運算求餘 取模運算和取餘運算
取模運算和取餘運算 取模運算 modulo operation 和取餘運算 complementation 兩個概念有重疊的部分但又不完全一致。主要的區別在於對負整數進行除法運算時操作不同。取模主要是用於 計算機術語中。取餘則更多是數學概念。模運算在數論和程式設計中 都有著廣泛的應用,從奇偶數的判別...
辨析取模運算與取餘運算
通常情況下,取模運算 mod 和取餘運算 rem 被混為一談,因為在大多數的程式語言裡,都用 符號來表示取模運算或者取餘運算。所以有必要編寫本文件,來為在此環節遇到問題的程式設計師理清思路,同時也提醒各位需要注意在不同程式語言環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。...