Mod
例題
すべて開く すべて閉じる例 (4)
スコープ (13)
数値評価 (6)
Mod[17, 5]Mod[17, 5, 1]Modは整数に使うことができる:
Mod[17, 5]Mod[5 / 2, 2]Mod[Sqrt[28], 3]Mod[5 + 3I, 2]Mod[Pi, 2]Mod[3.14, 2.]Mod[10 ^ 10000, 10007]Modはリストに縫い込まれる:
Mod[{1, 2, 3, 4, 5}, 3]TraditionalFormによる表示:
Mod[a, n]//TraditionalForm記号演算 (7)
Reduce[Mod[2x + 1, 5] == Mod[x, 7] && 0 < x < 50, x]Modを総和で使う:
Sum[Mod[n ^ 2, 2], n]Product[Sin[(1/1 + Mod[i ^ 2, 3])], i]FullSimplify[Mod[a, -b] + Mod[-a, b] == 0]Mod数列を識別する:
FindSequenceFunction[{1, 2, 3, 4, 0, 1, 2, 3, 4, 0}, n]DifferenceRootReduce[Mod[k, 3], k]DirichletTransform[Mod[n, 2], n, s]GeneratingFunction[Mod[n, 4], n, x]ExponentialGeneratingFunction[Mod[n, 4], n, x]//FullSimplifyアプリケーション (19)
基本的なアプリケーション (3)
Modの最初の20の値:
Grid[{Prepend[Range[20], "n"], Prepend[Table[CarmichaelLambda[n], {n, 20}], "TraditionalFormλ(n)"]}, Background -> {None, {StandardOrange, StandardGray}}, Dividers -> Lighter[Gray, .5], Spacings -> {Automatic, .8}]DiscretePlot[Mod[n, 8], {n, 50}]DiscretePlot[Mod[100, m], {m, 50}]Mod[n,8]の母関数:
ModGF[z_] = GeneratingFunction[Mod[n, 8], n, z]GraphicsRow[{Plot[ModGF[x], {x, 0, 1}], ContourPlot[Re[ModGF[x + I * y]], {x, -1, 1}, {y, -1, 1}, ContourStyle -> None]}]ModEGF[z_] = ExponentialGeneratingFunction[Mod[n, 8], n, z];GraphicsRow[{Plot[ModEGF[x], {x, 0, 16}], ContourPlot[Re[ModEGF[x + I * y]], {x, -1, 1}, {y, -1, 1}, ContourStyle -> None]}]ModL[s_] = Sum[Mod[n, 8] / n ^ s, {n, 1, Infinity}]GraphicsRow[{Plot[ModL[x], {x, 0, 16}], ContourPlot[Re[ModL[x + I * y]], {x, -1, 1}, {y, -1, 1}, ContourStyle -> None]}]数値識別子 (1)
与えられた国際標準図書番号(ISBN)が有効かどうかをチェックする:
ISBNs = {"0394380495", "1092312213", "0821801236", "9781944183"};ValidISBNQ[str_] := Module[
{l}, l = ToExpression[StringPartition[str, 1]];
If[Mod[Sum[l[[i]]i, {i, 10}], 11] == 0, True, False]
];ValidISBNQ /@ ISBNs暗号 (2)
{p, q} = Prime[RandomInteger[{10 ^ 4, 10 ^ 5}, {2}]];
n = p qλ = CarmichaelLambda[n]d = NestWhile[#1 + 1& , Round[n / 3], GCD[λ, #1] =!= 1&]e = ModularInverse[d, λ]PowerMod[ToCharacterCode["RSA in Mathematica"], e, n]FromCharacterCode[PowerMod[%, d, n]]アルファベットの文字をシフトさせてメッセージを暗号化するシーザー暗号をModを使って作る:
EncryptCaesar[msg_, key_] := Module[
{encr, decr, x, n, nums, res},
encr = Transpose[{Alphabet[], Range[0, 25]}] /. {x_String, n_Integer} -> (x -> n);
decr = Reverse[encr, 2];
nums = StringPartition[ToLowerCase[msg], 1] /. encr;
res = (Mod[nums + key, 26]) /. decr//StringJoin
];
DecryptCaesar[msg_, key_] := EncryptCaesar[msg, -key];key = 315;
msg = "bewaretheidesofmarch";
EncryptCaesar[msg, key]DecryptCaesar[%, key]整数論 (6)
MersennePrimeQ[n_] := TrueQ[Last[NestList[Mod[# ^ 2 - 2, 2 ^ n - 1]&, 4, n - 2]] == 0];Select[Range[3, 100], MersennePrimeQ]Select[Array[Prime, PrimePi[100]], Mod[#, 6] == 1&]GCD[7, 11]Mod[7 ^ (11 - 1), 11]GCD[7, 12]Mod[7 ^ EulerPhi[12], 12]FunctionExpand[Mod[(p - 1)!, p], p∈Primes]x_⊕y_ := Mod[x + y, 2](1⊕0)⊕1Modを使って線形合同式の系を解く:
r = {3, 5, 7};
m = {2, 3, 5};
M = (Times@@m/m);
Mod[Dot[r, #^EulerPhi[#]& /@ M], Times@@m]ChineseRemainder[r, m]コンピュータサイエンス (3)
x[0] = UnixTime[]
x[k_] := Mod[a^kx[0], m];m = 2147483647;
a = 16807;Histogram[Table[x[i] / m, {i, 0, 1000}], 10]{a, b, c}[[Mod[Range[10], 3, 1]]]A = {{3, 4}, {2, 5}};MinorMatrix[Mat_List ? MatrixQ] := Map[Reverse, Minors[Mat], {0, 1}]
CofactorMatrix[Mat_List ? MatrixQ] := MapIndexed[#1 (-1) ^ (Plus@@#2)&, MinorMatrix[Mat], {2}]
MatrixAdjoint[Mat_] := Transpose[CofactorMatrix[Mat]];ModularInverseMatrix[Mat_, m_] := Mod[ModularInverse[Det[Mat], m]MatrixAdjoint[Mat], m];
ModularInverseMatrix[A, 13]Mod[A.%, 13]政治学,経済学,社会学 (2)
ハッシュアルゴリズムに基づいて(アメリカ合衆国の)社会保障番号にメモリアドレスを割り当てる:
socials = {344401659, 325510778, 212228844, 329938157, 047900151, 372500191, 034367980, 546332190, 509496993, 132489973};各社会保障番号に場所を,衝突がないことを確認して割り当てる:
AssignSingle[social_, locations_] := Module[
{i = 0},
While[MemberQ[locations[[ ;; , 2]], h[i, social]], i++];
Append[locations, {social, h[i, social]}]
];
AssignAll[socials_] := Module[
{l = Length[socials], locations = {}},
For[i = 1, i ≤ l, i++, locations = AssignSingle[socials[[i]], locations]];
locations
];AssignAll[socials]m = 4969;
num = 10 ^ 3 + 1;
g[k_] := Mod[k + 1, m - 2];
hash[k_] := Mod[k + num g[k], m];
social = 344401659;hash[social]その他のアプリケーション (2)
特性と関係 (7)
Modは周期関数である:
FunctionPeriod[Mod[n, 3], n]Modはすべての複素数上で定義される:
FunctionDomain[Mod[n, 3], n]FunctionRange[Mod[n, 3], n, m]Modは推移的である.もし
かつ
なら
である:
Mod[5, 3] == Mod[2, 3]Mod[2, 3] == Mod[8, 3]Mod[8, 3] == Mod[5, 3]Divisible[8, 2]Mod[8, 2]QuotientRemainder[a,n]はMod[a,n]と同じである:
QuotientRemainder[17, 6]//LastMod[17, 6]PowerModを使って逆モジュロを計算する:
PowerMod[3, -1, 7]Mod[3 5, 7]Mod[{5, -5}, 3]Mod[{5, -5}, -3]正の実数 x について,Mod[x,1]は x の小数部分を与える:
Mod[3.14, 1]FractionalPart[3.14]考えられる問題 (1)
計算によってはデフォルトよりも高い内部精度を要求するものがある:
Mod[GoldenRatio ^ 1000, 1]$MaxExtraPrecisionの値をリセットする:
Block[{$MaxExtraPrecision = Infinity}, Mod[GoldenRatio ^ 1000, 1]]おもしろい例題 (4)
ArrayPlot[Table[Mod[Binomial[i, j], 2], {i, 0, 63}, {j, 0, 63}]]ArrayPlot[CellularAutomaton[{Mod[Total[#], 4]&, {}, 1}, {{1}, 0}, 50]]49を法として合同に基づいて彩色された数でウラム(Ulam)の螺線をプロットする:
ulam[n_] := Partition[Permute[Range[n ^ 2], Accumulate[Take[Flatten[{{n ^ 2 + 1} / 2, Table
[(-1) ^ j i, {j, n}, {i, {-1, n}}, {j}]}], n ^ 2]]], n]ArrayPlot[Mod[ulam[109], 109], ColorFunction -> "TemperatureMap"]ArrayPlot[Table[Mod[a + b, 4], {a, 0, 8}, {b, 0, 8}], ColorFunction -> "Rainbow"]テクニカルノート
-
▪
- 数学関数 ▪
- 整数の操作と整数論に関連した関数
履歴
1988 で導入 (1.0) | 1996 で更新 (3.0) ▪ 1999 (4.0) ▪ 2000 (4.1) ▪ 2002 (4.2)
テキスト
Wolfram Research (1988), Mod, Wolfram言語関数, https://reference.wolfram.com/language/ref/Mod.html (2002年に更新).
CMS
Wolfram Language. 1988. "Mod." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2002. https://reference.wolfram.com/language/ref/Mod.html.
APA
Wolfram Language. (1988). Mod. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/Mod.html
BibTeX
@misc{reference.wolfram_2026_mod, author="Wolfram Research", title="{Mod}", year="2002", howpublished="\url{https://reference.wolfram.com/language/ref/Mod.html}", note=[Accessed: 03-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_mod, organization={Wolfram Research}, title={Mod}, year={2002}, url={https://reference.wolfram.com/language/ref/Mod.html}, note=[Accessed: 03-August-2026]}