<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hant-TW">
	<id>https://wiki.hakka.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E9%99%A4</id>
	<title>模除 - 修訂紀錄</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hakka.ima.org.tw/w/index.php?action=history&amp;feed=atom&amp;title=%E6%A8%A1%E9%99%A4"/>
	<link rel="alternate" type="text/html" href="https://wiki.hakka.ima.org.tw/w/index.php?title=%E6%A8%A1%E9%99%A4&amp;action=history"/>
	<updated>2026-07-03T02:13:18Z</updated>
	<subtitle>本 wiki 上此頁面的修訂紀錄</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.hakka.ima.org.tw/w/index.php?title=%E6%A8%A1%E9%99%A4&amp;diff=36463&amp;oldid=prev</id>
		<title>TaiwanTonguesApiRobot：​從 JSON 檔案批量匯入</title>
		<link rel="alternate" type="text/html" href="https://wiki.hakka.ima.org.tw/w/index.php?title=%E6%A8%A1%E9%99%A4&amp;diff=36463&amp;oldid=prev"/>
		<updated>2025-08-23T07:52:51Z</updated>

		<summary type="html">&lt;p&gt;從 JSON 檔案批量匯入&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新頁面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;#039;&amp;#039;&amp;#039;模除&amp;#039;&amp;#039;&amp;#039;（又安到&amp;#039;&amp;#039;&amp;#039;模數&amp;#039;&amp;#039;&amp;#039;、&amp;#039;&amp;#039;&amp;#039;取模操作&amp;#039;&amp;#039;&amp;#039;、&amp;#039;&amp;#039;&amp;#039;取模運算&amp;#039;&amp;#039;&amp;#039;等，英語：modulo 有時乜安到 modulus）得著个係一個數除以另外一個數个餘數。&lt;br /&gt;
&lt;br /&gt;
分定兩隻正整數：被除數 $ a $ 摎除數 $ n $，_ a _ modulo _ n _ ( 縮寫為 $ a { \ bmod { n } } $ ) 得著个係用歐幾里德除法个時節 $ { \ frac { a } { n } } $ 个餘數。&lt;br /&gt;
舉一個例仔：計算表達式 &amp;quot; $ 五 { \ bmod { 二 } } $ &amp;quot; 得著一，因為 $ 五 \ div 二=二 \ ldots 一 $（五除以二商二餘一）； 還過 &amp;quot; $ 九 { \ bmod { 三 } } $ &amp;quot; 得著零，因為 $ 九 \ div 三=三 \ ldots 零 $；注意哦：係講用計算器做除法，做毋得清忒个時節，你毋會得著商，係會得著一個小數，像係：$ 五 \ div 二=二 .五 $。&lt;br /&gt;
&lt;br /&gt;
雖然一般情況下 $ a $ 摎 $ n $ 係整數，毋過當多計算系統允准其他類型个數字操作，像係：對浮點數取模。一隻整數對 $ n $ 取模个結果範圍係：零到 $ n 重點一千八百空二 $（$a { \ bmod { 一 } } $ 恆等於零；$ a { \ bmod { 零 } } $ 係吂有定義个，在程式語言里可能會造成除零錯誤）。&lt;br /&gt;
有關概念在數論當中个應用請參閱模算數。&lt;br /&gt;
&lt;br /&gt;
當 $ a $ 摎 $n $ 都係負數个時節，一般个定義就毋適用了，無共樣个程式語言對結果有無共樣个處理。&lt;br /&gt;
&lt;br /&gt;
==定義摎其他部分个算==&lt;br /&gt;
&lt;br /&gt;
在數學當中，取模運算个結果就係歐幾里德除法个餘數。當然也有異多其他个定義方式。 計算機摎計算器有異多種表示摎儲存數字个方法，故所在無共樣个硬體環境下、無共樣个程式語言當中，取模運算有無共樣个定義。&lt;br /&gt;
&lt;br /&gt;
做得講所有个計算系統當中，$ n $ 除 $ a $ 得著商 $ q $ 摎餘數 $ r $ 都滿足用下式子：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: :&lt;br /&gt;
&lt;br /&gt;
毋過恁呢做，係講零點恁久，餘數个符號仍然係有歧義个：伸个時節毋係零點，厥仔符號有兩種選擇，一個正、一個負。一般情況下，在數論中總係使用个正數。毋過在程式語言當中，餘數个符號就愛看程式語言个類型摎被除數 _ a _ 抑係除數 $ n $ 个符號。&lt;br /&gt;
標準 Pascal 摎 ALGOL 六十八總係使用零抑係正部分；有兜程式語言， 像係 C 九十，除數 $ a $ 摎除數 $ n $ 都係負數个時節，C 九十標準並無做具體个規定，係留分編譯器去定義還過實現。&lt;br /&gt;
在大多數系統頂高 $ a { \ bmod { 零 } } $ 未定義个啊，雖然有兜系統定義佢就等於 $ a $。還較多詳細情形參見表格。&lt;br /&gt;
&lt;br /&gt;
* 當多取模个實現都使用了 _ 截斷除法 _，這時商由截斷函數定義定義 $ q=\ mathrm { trunc } \ left ( { \ frac { a } { n } } \ right ) $，故所由等式&amp;#039;&amp;#039;&amp;#039;一&amp;#039;&amp;#039;&amp;#039;有，餘數 _ 同被除數共樣 _。商量摎零取整：結果等於普通除法所得个小數偎兼零方向个頭一個整數。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $r=a-n \ operatorname { trunc } \ left ( { \ frac { a } { n } } \ right ) $&lt;br /&gt;
&lt;br /&gt;
* 高德納定義个 _ 取底除法 _ 个商由取底函數定義：$ q=[{ \ frac { a } { n } }] $。故所由等式&amp;#039;&amp;#039;&amp;#039;一&amp;#039;&amp;#039;&amp;#039;有，餘數 _ 摎除數共樣个一致 _。因為使用了取底个函數，商總係跌下來整理，就算商已經係負數。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ r=a-n \ left [{ \ frac { a } { n } } \ right] $&lt;br /&gt;
&lt;br /&gt;
* Raymond T . Boute 使用个歐幾里得定義當中，餘數總係非負个 $ 零 \ leq r $，這同歐幾里愛算法係共樣个。&lt;br /&gt;
&lt;br /&gt;
在這種情形下：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ n &amp;gt; 零 \ Rightarrow q=\ left [{ \ frac { a } { n } } \ right] $&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ n &amp;lt; 零 \ Rightarrow q=- \ left [- { \ frac { a } { n } } \ right] $&lt;br /&gt;
&lt;br /&gt;
抑係講等價个：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ q=\ operatorname { sgn } ( n ) \ left [{ \ frac { a } { \ left | n \ right | } }\ right] $&lt;br /&gt;
&lt;br /&gt;
這片个 $ \ mathrm { sgn } $ 係符號函數，故所&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: $ r=a- | n | \ left [{ \ frac { a } { \ left | n \ right | } } \ right] $&lt;br /&gt;
&lt;br /&gt;
* Common Lisp 也定義了自家个捨入除法摎進位除法，商分別定義為 $ q=\ mathrm { round } \ left ( { \ frac { a } { n } } \ right )$ 摎 $ q=- \ left [{ \ frac { -a } { n } } \ right] $。&lt;br /&gt;
* IEEE 七百五十四定義了一個取余函數，生理被定義為 $ { \ frac { a } { n } } $，依據盼得入約定取整。所以餘數个符號選定為 _ 最接近零 _。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==常見个錯誤==&lt;br /&gt;
&lt;br /&gt;
當取模个結果摎被除數符號共樣个時節，可能造成意想都無个毋著。&lt;br /&gt;
&lt;br /&gt;
舉一個例仔：假使需要判斷一隻整數係毋係奇數，有人可能會試這數除忒二次多數係毋係一：&lt;br /&gt;
&lt;br /&gt;
但係在一隻取模結果摎被除數符號共樣个程式語言里，恁呢做係毋著个。因為當被除數 _ n _ 這係選數个時節，$ n { \ bmod { 二 } } $得著 − 一，這時函數返回「假」。&lt;br /&gt;
&lt;br /&gt;
一種正確个試取模結果係毋係，因為餘數係零點無符號个問題：&lt;br /&gt;
&lt;br /&gt;
或者考慮餘數个符號，有兩種情形：餘數可能係一隻抑講重點一千八百空二。&lt;br /&gt;
&lt;br /&gt;
==記號==&lt;br /&gt;
&lt;br /&gt;
一兜計算器有取模 mod ( ) 按鈕，當多程式語言也有相像个函數，一般像 mod ( _ a _ , _ n _ ) 恁呢。&lt;br /&gt;
有兜語言也支持在表達式內使用 &amp;quot; % &amp;quot;、&amp;quot; mod &amp;quot; 抑係 &amp;quot; Mod &amp;quot; 來做為取模抑係取余操作符。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ` a  % n `&lt;br /&gt;
&lt;br /&gt;
抑係&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ` a mod n `&lt;br /&gt;
&lt;br /&gt;
抑算在一息無 mod ( ) 函數个環境當中使用這兜價數个：&lt;br /&gt;
（ 注意哦&amp;#039;int&amp;#039;事實上等價到截斷函數 $ { \ frac { a } { n } } $，進行了向零取整）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ` a - ( n * int ( a / n ) ) `&lt;br /&gt;
&lt;br /&gt;
==等價性==&lt;br /&gt;
&lt;br /&gt;
一兜取模操作，經過分解摎展開做得等於其他數學運算。這在密碼學个證明當中蓋有用，比將講：迪菲 - 赫爾曼密鎖匙交換。&lt;br /&gt;
&lt;br /&gt;
* 恆等式：&lt;br /&gt;
* $ ( a { \ bmod { n } } ) { \ bmod { n } }=a { \ bmod { n } }$&lt;br /&gt;
* 對所有个正數 $ x $ 有：$ n ^ { x } { \ bmod { n } }=零 $&lt;br /&gt;
* 係講 $ p $ 係一個質數，還做毋得 $ b $ 个因數，這時由費馬細定理有：$ ab ^ { p 重點一千八百空二 }{ \ bmod { p } }=a { \ bmod { p } } $&lt;br /&gt;
* 逆運算：&lt;br /&gt;
* $ [( -a { \ bmod { n } } ) + ( a { \ bmod { n } } )]={ \ bmod { n } }=零 $ .* $ b ^ { 重點一千八百空二 } { \ bmod { n } } $ 就講模反元素。係講唯一 $ b $ 摎 $ n $ 互質時，等式个左片个有定義：$ [( b ^ { 重點一千八百空二 } { \ bmod { n } } ) ( b { \ bmod { n} } )] { \ bmod { n } }=一 $。&lt;br /&gt;
* 分配律：&lt;br /&gt;
* $ ( a + b ) { \ bmod { n } }=[( a { \ bmod { n } } ) + ( b { \ bmod { n } } )] { \ bmod {n } } $&lt;br /&gt;
* $ ab { \ bmod { n } }=[( a { \ bmod { n } } ) ( b { \ bmod { n } } )] { \ bmod { n } } $&lt;br /&gt;
* $ d { \ bmod { ( } } abc )=(d { \ bmod { a } } ) + a [( d \ backslash a { \ bmod { b } } )] + ab [( d \ backslash a \ backslash b ) { \ bmod { c } }] $，符合號 \ 係歐幾里德除法當中个除法操作符，運算結果係商&lt;br /&gt;
* $ c { \ bmod { ( } } a + b )=( c { \ bmod { a } } ) + [bc \ backslash ( a + b )] { \ bmod{ b } } - [bc \ backslash ( a + b )] { \ bmod { a } } $ .&lt;br /&gt;
* 除法定義：正當式个子右片有定義个時節，就係 $ b $、$ n $ 互質時有：$ { \ frac { a } { b }} { \ bmod { n } }=[( a { \ bmod { n } } ) ( b ^ { 重點一千八百空二 } { \ bmod { n } } )] { \ bmod { n } } $，其他情況係無定義个。&lt;br /&gt;
* 乘法逆元：$ [( ab { \ bmod { n } } ) ( b ^ { 重點一千八百空二 } { \ bmod { n } } )] { \ bmod { n } }=a { \ bmod { n } } $ .&lt;br /&gt;
&lt;br /&gt;
==性能問題==&lt;br /&gt;
&lt;br /&gt;
做得通過依次計算帶餘數个除法實現取模操作。特殊情況下，像係有兜硬體項，存在還較遽个實現。&lt;br /&gt;
比將講：二个 n 次冪个模，做得通過逐位摎運算實現：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ` x  % 二 n==x &amp;amp; ( 二 n - 一 ) `&lt;br /&gt;
&lt;br /&gt;
例仔，假定 _ x _ 為正數：&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ` x  % 二==x &amp;amp; 一 `&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ` x  % 四==x &amp;amp; 三 `&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
: ` x  % 八==x &amp;amp; 七 `&lt;br /&gt;
&lt;br /&gt;
在進行位操作比取模操作效率還較高个設備抑係軟體環境當中，以上形式个取模運算速度還較遽。&lt;br /&gt;
&lt;br /&gt;
編譯器做得自動識別出對二个 n 次冪取模个表達式，自動摎佢優化為 ` expression &amp;amp; ( constant 重點一千八百空二 ) `。恁樣做得在兼顧效率个情況下寫出更加整潔个代碼。這個優化在取模結果摎被除數符號共樣个語言當中（包含 C 語言）做毋得用，除非被除數係無符號整數。這係因為係講分人除數係負數，也係負數，毋過 ` expression &amp;amp; ( constant 重點一千八百空二 ) ` 總係正數，進行恁樣个優化就會引起毋著，無符號整數無這個問題。&lt;br /&gt;
&lt;br /&gt;
==用途==&lt;br /&gt;
&lt;br /&gt;
* 取模運算可以用於判斷一個數係毋係能夠另外一個數整除。 第二名就做得判斷整數个奇偶性；對二到 $ n 重點一千八百空二 $ 取模係毋係做得判斷一隻數係毋係質數。&lt;br /&gt;
* 進制之間个轉換。&lt;br /&gt;
* 用來求最大公約數个輾轉除法使用取模運算。&lt;br /&gt;
* 密碼學中个應該用：對古老个凱撒密碼到現代輒常用个 RSA、橢圓曲線密碼，佢兜个實現過程都用了取模運算。&lt;br /&gt;
&lt;br /&gt;
==參見==&lt;br /&gt;
&lt;br /&gt;
* 模 ( 消歧義 ) 摎模 ( 術語 )——「模數（Modulo）」 這隻詞蓋多用法，都係一八零一年卡爾 ・ 弗里德里希 ・ 高斯引入模算數个時節產生个。&lt;br /&gt;
* 模冪運算&lt;br /&gt;
* 同餘&lt;br /&gt;
&lt;br /&gt;
==腳註==&lt;br /&gt;
&lt;br /&gt;
==參考文獻==&lt;br /&gt;
&lt;br /&gt;
[[分類: 待校正]]&lt;/div&gt;</summary>
		<author><name>TaiwanTonguesApiRobot</name></author>
	</entry>
</feed>