カーマイケル(Carmichael)関数
を与える.
CarmichaelLambda
カーマイケル(Carmichael)関数
を与える.
詳細
- CarmichaelLambdaは,簡約トーシェント関数あるいは最小普遍指数関数としても知られている.
- CarmichaelLambdaは,素数判定で,ある種の素数判定では合成数であると証明できない合成数を求めるためによく使われる.
- 記号操作・数値操作の両方に適した数学的整数関数である.
- CarmichaelLambda[n]は,
と互いに素であるすべての
について
となるような最小の正の整数
である.
(
は単数で
は素数)について,CarmichaelLambda[n]はLCM[(p1-1)
,…,(pm-1)
]を返す.
例題
すべて開く すべて閉じる例 (2)
のCarmichaelLambdaを計算する:
CarmichaelLambda[10]DiscretePlot[CarmichaelLambda[n], {n, 0, 50}]スコープ (7)
数値評価 (4)
CarmichaelLambda[10]CarmichaelLambda[-10]CarmichaelLambda[10 ^ 90 + 1]CarmichaelLambdaはリストに縫い込まれる:
CarmichaelLambda[{2, 4, 7}]TraditionalFormによる表示:
CarmichaelLambda[n]//TraditionalForm記号演算 (3)
FindInstance[CarmichaelLambda[n] == EulerPhi[n] && n > 0, n, Integers]FullSimplify[Mod[a ^ CarmichaelLambda[n], n], Element[a | n, Integers] && GCD[a, n] == 1 && n > 1]CarmichaelLambda数列を識別する:
FindSequenceFunction[{1, 1, 2, 2, 4, 2, 6, 2, 6, 4}, n]アプリケーション (7)
基本的なアプリケーション (3)
CarmichaelLambdaの最初の20の値:
Grid[{Prepend[Range[20], "n"], Prepend[Table[CarmichaelLambda[n], {n, 20}], "TraditionalFormλ(n)"]}, Background -> {None, {Orange, StandardGray}}, Dividers -> Lighter[Gray, .5], Spacings -> {Automatic, .8}]DiscretePlot[CarmichaelLambda[n], {n, 0, 100}]NumberLinePlot[Table[CarmichaelLambda[n], {n, 100}]]CarmichaelGF[z_] := Sum[CarmichaelLambda[n] * z ^ n, {n, 500}]GraphicsRow[{Plot[CarmichaelGF[x], {x, 0, 1}], ContourPlot[Re[CarmichaelGF[x + I * y]], {x, -1, 1}, {y, -1, 1}, ContourStyle -> None]}]CarmichaelEGF[z_] := Sum[CarmichaelLambda[n] * z ^ n / n!, {n, 500}]GraphicsRow[{Plot[CarmichaelEGF[x], {x, 0, 5}], ContourPlot[Re[CarmichaelEGF[x + I * y]], {x, -3, 3}, {y, -3, 3}, ContourStyle -> None]}]CarmichaelDirichlet[s_] := Sum[CarmichaelLambda[n] / n ^ s, {n, 500}]GraphicsRow[{Plot[CarmichaelDirichlet[x], {x, 0, 1}], ContourPlot[Re[CarmichaelDirichlet[x + I * y]], {x, -1, 1}, {y, -1, 1}, ContourStyle -> None]}]素数判定 (2)
素数が与えられた場合,p より小さいすべての正の数 a について
である:
Table[Mod[a ^ (11 - 1), 11] == 1, {a, 1, 10}]primeQ[n_, a_ : 2] := Mod[a ^ (n - 1), n] == 1{primeQ[3], primeQ[9], primeQ[23]}{primeQ[341, 2], primeQ[341, 3]}このテストは
を満足する合成整数 n に対しては結論が出せないかもしれない:
Mod[561, CarmichaelLambda[561]]primeQ[561, 2]AllTrue[Select[Range[561], CoprimeQ[#, 561]&], primeQ[561, #]&]カーマイケル数,すなわち n と互いに素であるすべての a について an≡1 mod n である合成数を認識する:
CarmichaelNumberQ[n_] := CompositeQ[n] && Mod[n, CarmichaelLambda[n]] == 1CarmichaelNumberQ[561]CarmichaelNumberQ[1310]暗号学 (1)
RSAのような暗号スキームを構築する.まず,モジュラスから始める:
{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]]整数論 (1)
FindCycles[n_] := Cases[GroupElements[CyclicGroup[EulerPhi[n]]], Cycles[{x_}] -> x]EulerPhi[12]subgroups = FindCycles[14]Dimensions[subgroups][[2]]CarmichaelLambda[12]特性と関係 (7)
CarmichaelLambda[{-2, -1, 0, 1, 2}]{Divisible[24, 8], Divisible[CarmichaelLambda[24], CarmichaelLambda[8]]}CarmichaelLambdaのLCMはLCMのCarmichaelLambdaに等しい:
{LCM@@CarmichaelLambda[{3, 8}], CarmichaelLambda[LCM[3, 8]]}SquareFreeQ[17]Mod[3 ^ (CarmichaelLambda[17] + 1), 17]
を法とした元の乗法的位数はCarmichaelLambda[n]を割る:
Divisible[CarmichaelLambda[9], MultiplicativeOrder[4, 9]]Divisible[EulerPhi[8], CarmichaelLambda[8]]
が原始根を持つなら,CarmichaelLambdaとEulerPhiは等しい:
Cases[Range[2, 20], n_ /; IntegerQ[PrimitiveRoot[n]]]CarmichaelLambda[%]EulerPhi[%%]おもしろい例題 (2)
CarmichaelLambdaの値を変化させるプロット:
ArrayPlot[Table[CarmichaelLambda[j + 5k], {j, 1, 100}, {k, 1, 100}], ColorFunction -> "AvocadoColors"]CarmichaelLambdaの値に基づいて数が彩色されたウラム(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[CarmichaelLambda[ulam[101]], ColorFunction -> "Rainbow"]テクニカルノート
履歴
1999 で導入 (4.0) | 2018 で更新 (11.3)
テキスト
Wolfram Research (1999), CarmichaelLambda, Wolfram言語関数, https://reference.wolfram.com/language/ref/CarmichaelLambda.html (2018年に更新).
CMS
Wolfram Language. 1999. "CarmichaelLambda." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2018. https://reference.wolfram.com/language/ref/CarmichaelLambda.html.
APA
Wolfram Language. (1999). CarmichaelLambda. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/CarmichaelLambda.html
BibTeX
@misc{reference.wolfram_2026_carmichaellambda, author="Wolfram Research", title="{CarmichaelLambda}", year="2018", howpublished="\url{https://reference.wolfram.com/language/ref/CarmichaelLambda.html}", note=[Accessed: 14-August-2026]}
BibLaTeX
@online{reference.wolfram_2026_carmichaellambda, organization={Wolfram Research}, title={CarmichaelLambda}, year={2018}, url={https://reference.wolfram.com/language/ref/CarmichaelLambda.html}, note=[Accessed: 14-August-2026]}