邏輯上的取模運算可通過物理上的環狀結構實現。比如跑道,比如時鐘,比如現在是 9 點鐘,5 小時之後是幾點,是 2 點,怎麼算的? (9
+5)%
12=2
對嗎?這裡強調的倒不是取模的計算方法,而是取模運算可通過環狀結構實現。
環中兩點間的最大間隔:
max(
min(x,
y)),
x,y∈
環 (x
,y) :表示兩點間的允許距離,環中從一點到另外一點一般有兩條路徑,順時針和逆時針。
比如鐘錶中的兩點,1點到6點,距離為(5,7)(兩者之和構成乙個環的長度)。
顯然對於時鐘而言,
max(
min(x,
y))=
(12,6
) 在比如以 也讓其構成乙個環,環的長度為 13. 環的兩點間的最大長度為仍為 6.
其實環的兩點間的最大長度的更為簡潔的計算公式為: d=
⌊d2⌋
所有滿足 (x+y) mod 12 = 0 的 x與y 的組合如下:
此時 x 與 -y 的作用是相同的;
也即來到 1 的位置,進一步,我們可以這樣理解 x 與 y 的關係,x 與 y 互為倒數。等式本身的實際意義在於,以每次 x 的大小波動 y 次,來到 1 點的位置。
取模與取餘
通常情況下取模運算 mod 和求餘 rem 運算被混為一談,因為在大多數的程式語言裡,都用 符號表示取模或者求餘運算。在這裡要提醒大家要十分注意當前環境下 運算子的具體意義,因為在有負數存在的情況下,兩者的結果是不一樣的。對於整型數a,b來說,取模運算或者求餘運算的方法都是 1.求 整數商 c a ...
取模與取餘的區別
其實取模和取餘在目標上是一致的,但是因為語言對取餘和取模上定義的不同,導致得到的結果不同。對取餘和取模定義不同的語言中,兩者的不同點只有乙個 取餘運算在計算商值向0方向捨棄小數字 取模運算在計算商值向負無窮方向捨棄小數字 同時,也可以這樣理解 從上面的區別可以總結出,取餘 rem 和取模 mod 在...
C 中的取餘與取模
目前為止,我並沒有找到c 中數學意義上的取模操作。是一種取餘運算。假設r a mod b,關於取模與取餘的一點概念有 那麼,c 中什麼時候會用到取模?在型別轉換時,當把乙個超出範圍的值v賦給乙個無符號型別時,其計算方法是 先確定無符號型別的可取數n 最終結果 v mod n 比如,把 1賦值給uns...