一套有限的基本数论工具

バジョン1.1.0(36.6 kb)作成者: 约翰D 'Errico
用于处理整数及其因数、质数、同余等的各种工具。

ダウンロド1件

更新2022/12/26

ラ@ @センスの表示

多年来,我整理了一些有用的工具来处理整数、同余、因数、除数等。这些工具都不需要使用符号工具箱,尽管我已经尽可能地让任何数字类都可以访问它们,包括double、syms、int64和我自己的VPIJ工具。
在这套工具中,您将找到列出数字的所有因子对、数字的模逆、refgf工具、勒让德和雅可比符号、离散对数、模平方根、欧拉totient函数等的函数。
例如,modSqrt解决了这个问题:
Mod (x^2,n) = a
对685取模,这个问题有两个解。金宝搏官方网站
x = modSqrt(15,685)
x =
120 565
国防部(x ^ 2685)
ans =
15 15
modInv解决了这个问题
Mod (a*x,n) = 1
x = modInv(12137)
x =
80
国防部(x * 12137)
ans =
1
有6对数字是36的因子对(如果我们假设这对数字的第一个元素永远不大于第二个元素)。
factorpairs (36)
ans =
1 36
2 18
3 12
4个9
6个6
modLog解决了通常所说的离散对数问题。它找到了解决问题的方法
Mod (a^x,n) == b
注意,这个解决方案不必是唯一的。
modLog(11760、9931)
ans =
137
所以,我们会
Mod (11^137,9931) == 760
当然,您不能使用mod计算结果,但是powerMod就足够了。
powerMod(11137、9931)
ans =
760
refgf对整数环中的矩阵进行行操作,对某个数N(有时称为GF(N))进行乘法模。
A = randi(2,[4,4]) - 1
一个=
1 10 0 1
0 0 1 1
0 0 0 1
1 0 1 1
[A,Abasis,Arank,Ainv] = rrefgf(A,2)
Arref =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Abasis =
1 2 3 4
Arank =
4
Ainv =
0 1 1
1 1 1 1
0 1 1 0
0 0 1 0
所以这个随机矩阵在GF(2)中是满秩的。作为逆的检验产生:
国防部(* Ainv, 2)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
有一些处理二次残差的工具。在这个例子中,P恰好是质数。
P = 10000019;
legendreSymbol(12345页)
ans =
-1
legendreSymbol(12346页)
ans =
1
如果legendreSymbol (a/p)为-1,则a不是二次余项。
A = 12345;
legendreSymbol (a, P)
ans =
-1
在这种情况下,不存在模平方根,因为a不是二次余数。
modSqrt (a, P)
警告:无解决方案因为同余根号rt存在
modSqrt(123行)
ans =
[]
然而,12346是一个二次余项。
legendreSymbol (P + 1)
ans =
1
modSqrt (P + 1)
ans =
4722543 5277476
你可以找到一个数的所有二次残差的列表。(如果数字更大,这个列表会很长,所以要小心。)
quadraticResidues (100)
ans =
1到15
0 1 49 16 21 24 25 29 36 41 44 49 56 61
16到22
64 69 76 81 84 89 96
雅可比符号(a/P)的工作原理与勒让德符号类似,但用于复合模。
另一个简单的工具是properDivisors,这里只是因为它比类似的符号工具箱工具除器快得多。
properDivisors (210)
ans =
1 2 35 6 7 10 14 15 21 30 35 42 70 105
享受。

引用

约翰·迪里科(2022)。一套有限的基本数论工具(//www.tatmou.com/matlabcentral/fileexchange/122497-a-limited-set-of-basic-number-theoretic-tools), MATLAB中央文件交换。取得済み

Matlabリリ,スの互換性
作成:R2022b
すべてのリリ,スと互換性あり
プラットフォ,ムの互換性
窗户 macOS Linux

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!

IntegerToolKit

バ,ジョン 公開済み リリ,スノ,ト
1.1.0

新的工具:primitiveRoot, leastPrimitiveRoot,加上测试后对许多其他工具的更新。

1.0.0