SageMath常用函数
SageMath常用函数
一、算术函数
1.1 基本运算
+、-、*、/
加减乘除大家都懂
近似除法(RealDoubleField)
print(RDF(5/3))#近似除法
print(5/3)
1.6666666666666667
5/3
通常用来在近似计算中将表达式变成实数,损失一定精度,但可以提高计算效率
模除
print(5//3)
1
幂运算
print(2^3,2**3)
8 8
向下、向上取整
print(floor(5/3),ceil(5/3))
1 2
1.2 最大公因数&最小公倍数
print(gcd(6,9),lcm(6,9))
3 18
1.3 扩展欧几里得算法
a=6
b=9
g,s,t=xgcd(a,b)
print(str(g)+"="+str(s)+"*"+str(a)+"+"+str(t)+"*"+str(b))
3=-1*6+1*9
1.4 幂模运算
print("17^20200301(mod 105)="+str(power_mod(17,2020301,105)))
17^20200301(mod 105)=47
1.5 模逆运算
print("5^-1="+str(inverse_mod(5,14))+"(mod 14)")
5^-1=3(mod 14)
1.7 中国剩余定理
{x≡1(mod11)x≡2(mod3)x≡3(mod5)x≡4(mod7)\begin{cases} x\equiv1(mod 11)\\ x\equiv2(mod 3)\\ x\equiv3(mod 5)\\ x\equiv4(mod 7)\\ \end{cases}⎩⎪⎪⎪⎨⎪⎪⎪⎧x≡1(mod11)x≡2(mod3)x≡3(mod5)x≡4(mod7)
print(crt([1,2,3,4],[11,3,5,7]))
683
即{x≡683(mod1155)\begin{cases}x\equiv683(mod 1155)\end{cases}{x≡683(mod1155)
1.8 素数相关函数
判断是否为素数
print(is_prime(3),is_prime(4))#判断是否为素数
True False
求第几位素数
print(nth_prime(1),nth_prime(2),nth_prime(10))#第几个素数
2 3 29
求小于a的最大素数、大于a的最小素数
print("大于10的最小素数:"+str(next_prime(10))+",小于10的最大素数:"+str(previous_prime(10)))
大于10的最小素数:11,小于10的最大素数:7
前n个素数
print(primes_first_n(10))#前十个素数
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
区间内的素数
print(list(primes(2,30)))#区间[2,30)内的素数,左闭右开
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29]
欧拉函数
print(euler_phi(31))#欧拉函数
30
1.9 整数分解
分解整数
print(factor(100))
2^2 * 5^2
椭圆曲线分解寻找素因子
print(ecm(1234567))
GMP-ECM 7.0.4 [configured with MPIR 3.0.0, --enable-asm-redc] [ECM]
Input number is 1234567 (7 digits)
Using B1=10, B2=84, polynomial x^1, sigma=1:3332739923
Step 1 took 0ms
Step 2 took 0ms
********** Factor found in step 2: 127
Found prime factor of 3 digits: 127
Prime cofactor 9721 has 4 digits
二次筛法分解
print(qsieve(12345678901234567890123456789012345678902))
([2, 22, 6418, 70598, 349745854025172608009389976741900498, 3847204394276898688103289744160905478, 1122334445566778899102132435364758698082], '')
仅求出素因子
print(prime_divisors(100))
[2, 5]
二、代数系统
2.1 P元有限域
有限域z7z_7z7
k1=GF(7)
操作z7z_7z7上的元素
a=k1(5)
print(a,a^6,a^-1)
5 1 3
求解x5≡2(mod7)x^5\equiv2(mod 7)x5≡2(mod7)和x2≡2(mod7)x^2\equiv2(mod 7)x2≡2(mod7)
print(k1(2).nth_root(5),k1(2).sqrt(2))
4 3
z7z_7z7的模多项式,以及其根
print(k1.modulus(),k1.gen())
x + 6 1
用本原多项式生成z7z^7z7
k2=GF(7,modulus='primitive')
print(k2.modulus(),k2.gen())
x + 4 3
2.2 pnp^npn元有限域
定义一个z73z^{7^3}z73的有限域,以及对应的本原多项式、本原多项式的根、有限域元素个数、元素的阶
k1.<x>=GF(7^3,modulus='primitive')
print(k1.modulus())
print(k1.gen())
print(k1.order())
print((x+2).multiplicative_order())
x^3 + 6*x^2 + 4
x
343
19
在有限域中计算x100x^{100}x100
print(x^100)
2*x^2 + x + 4
指定不可约多项式生成有限域,如x3+2∗x2+1x^3+2*x^2+1x3+2∗x2+1
k2.<a>=GF(7^3,modulus=[1,0,2,1])#低次写到高次的系数
print(k2.modulus())
print(k2.gen())
print(k2.order())
print((a+2).multiplicative_order())
x^3 + 2*x^2 + 1
a
343
38
计算极小多项式,可通过列表获取系数
print(a^100)
print((a^100).minimal_polynomial())
print((a^100).minimal_polynomial()[0],(a^100).minimal_polynomial()[1])
2*a^2 + 5*a + 4
x^3 + 4*x^2 + 4*x + 6
6 4
2.3 整数环
环的定义
r=Zmod(26)
r=Integers(26)#环Z26的两种写法
a=r(9)
b=r(8)
print(a*b)
20
求逆、求离散对数、判断是否平方元、求平方根
a^-1,a.log(7),a.is_square(),a.sqrt()
(3, 4, True, 3)
求a的乘法阶和加法阶
a.multiplicative_order(),a.additive_order()
(3, 26)
求a的极小多项式
print(a.minimal_polynomial())
x + 17
2.4 多项式环
一元多项式环
R.<x>=ZZ[]#定义R为整系数上的多项式环,文字为x
f=4*x^2+4*x+1#定义f为整系数一元多项式
print(f.is_irreducible(),f.factor())#判断一元多项式是否可约
False (2*x + 1)^2
定义多项式的两种方式
g=3*x^2+2*x+1#直接定义
s=R([1,2,3])#使用列表定义
print(g==s)
True
模除多项式、查找多项式的整数解
print(f.factor_mod(3))
print(f.roots())
(x + 2)^2
[]
环上的多项式
R.<x>=Zmod(26)[]#定义R为Z26上的环,文字为x
f=(x+1)*(x^3+x+1)#定义环上的一个多项式f
print(f)
print("多项式的次数:",f.degree())#多项式的次数
print("多项式的值:",f(7))#多项式的值
print("幂运算:",f^2)#幂运算
print("最高公因式:",f.gcd(x+1))#最高公因式
print("扩展欧几里得算法:",f.xgcd(x+1))#扩展欧几里得算法
print("带余除法:",f.quo_rem(3*x-1))#带余除法
print("模运算:",f%(3*x-1))#模运算
print("整除:",f//(3*x-1))#整除
x^4 + x^3 + x^2 + 2*x + 1
多项式的次数: 4
多项式的值: 0
幂运算: x^8 + 2*x^7 + 3*x^6 + 6*x^5 + 7*x^4 + 6*x^3 + 6*x^2 + 4*x + 1
最高公因式: x + 1
扩展欧几里得算法: (x + 1, 0, 1)
带余除法: (9*x^3 + 12*x^2 + 13*x + 5, 6)
模运算: 6
整除: 9*x^3 + 12*x^2 + 13*x + 5
域上的多项式
R.<x>=Zmod(13)[]#定义R为Z13上的环,文字为x 与GF(13)相同
#R.<x>=GF(13)[] 等价定义
f=(x+1)*(x^3+x+1)#定义环上的一个多项式f
print(f.is_irreducible(),f.factor())#判断多项式是否可约,多项式因式分解
print(f.roots())#多项式求根,以及重数
False (x + 1) * (x + 6) * (x^2 + 7*x + 11)
[(12, 1), (7, 1)]
三、矩阵操作
定义整数环上的矩阵,并作求逆运算
mt=matrix(r,2,2,[[24,15],[19,14]])#定义矩阵并赋值
print(mt[0][0])
print(mt)
print(mt^-1)
24
[24 15]
[19 14]
[12 15]
[19 2]
矩阵乘法
mt2=matrix(r,2,2,[[17,23],[23,20]])
print(mt2)
print((mt^-1)*mt2)
[17 23]
[23 20]
[3 4]
[5 9]
SageMath常用函数相关推荐
- php内置常用函数是哪些,PHP常用函数有哪些
PHP常用函数有哪些 导语:PHP主要通过函数实现一些功能,那PHP常用函数有哪些呢?下面就由小编为大家介绍一下,欢迎大家阅读! 数学函数 1.abs(): 求绝对值 $abs = abs(-4.2) ...
- Lua基本语法-书写规范以及自带常用函数
Lua基本语法-书写规范和常用函数 本文提供全流程,中文翻译. Chinar坚持将简单的生活方式,带给世人! (拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 String O ...
- SQLserver 常用函数适用方法(转载)
SQL Server 常用函数使用方法(持续更新) 之前就想要把一些 SQL 的常用函数记录下来,不过一直没有实行...嘿嘿... 直到今天用到substring()这个函数,C# 里面这个方法起始值 ...
- python Pool常用函数用法总结
在本篇内容里小编给大家整理的是一篇关于python Pool常用函数用法总结内容,有需要的朋友们可以学习下. 1.说明 apply_async(func[,args[,kwds]):使用非堵塞调用fu ...
- ACM——常用函数总结
常用函数总结: 一.全排列:next_permutation 二.读写优化 三.返回容器内最大最小值 四.复制函数 五.容器删除函数 六.容器填充函数 七.查找函数 八.字符串转换整数 九.欧拉筛 十 ...
- e class connect.php,剖析帝国CMS核心文件e/class/connect.php中的常用函数
帝国CMS下的e/class/connect.php文件中包含了帝国CMS常用的一些核心功能函数,加深对connect.php文件中常用函数的了解对于帝国CMS的二次开发来说非常重要. 现将帝国CMS ...
- PHP访问mysql的常用函数,PHP操作MySQL数据库常用函数
PHP操作MySQL数据库常用函数 php操作mysql数据库,俗称天龙八步: 第一步:连接数据库 第二步:判断连接错误 第三步:选择数据库 第四步:设置字符集 第五步:准备SQL语句 第六步:执行并 ...
- python math库常用函数_Python math库常用函数
math库常用函数及举例: 注意:使用math库前,用import导入该库 >>> import math 取大于等于x的最小的整数值,如果x是一个整数,则返回x >>& ...
- R语言广义线性模型函数GLM、广义线性模型(Generalized linear models)、GLM函数的语法形式、glm模型常用函数、常用连接函数、逻辑回归、泊松回归、系数解读、过散度分析
R语言广义线性模型函数GLM.广义线性模型(Generalized linear models).GLM函数的语法形式.glm模型常用函数.常用连接函数.逻辑回归.泊松回归.系数解读.过散度分析 目录
- R语言效用分析 ( 效能分析、Power analysis)确定样本量、假设检验与两类错误、pwr包进行效用分析 ( 效能分析、Power analysis)的常用函数列表
R语言效用分析 ( 效能分析.Power analysis)确定样本量.假设检验与两类错误.pwr包进行效用分析 ( 效能分析.Power analysis)的常用函数列表 目录
最新文章
- 服务注册发现与kit实践
- ftp服务器版本信息可被获取,ftp服务器版本信息可被获取
- pandas.series的数据定位为什么用两个左中括号[[
- 心得丨在开始第一个机器学习项目之前就了解的那些事儿
- springboot图书管理怎么实现借书时间到期提醒_今日图书丨有了这个,图书管理再也没烦恼!...
- Oracle安装——虚拟机搭建图解
- netty冲突 play sbt_netty4 实现一个断点上传大文件功能
- metadata request forward to GM6 - X-DevTools-Emulate-Network-Conditions-Cli
- 微软为 Visual Studio 推出新的 Razor 编辑器
- Swagger3、SpringBoot学习、使用复盘
- [Tools] JD-GUI(Java Decompiler)
- 如何判断用户使用的模拟器还是真正的安卓设备?
- 如何在Java中将毫秒转换为“ X分钟,x秒”?
- MDK与keilC51共存的方法(成功)MDK与keilC51破解
- cmdline-tools component is missing
- 基于卫星测深的牙买加沿岸水深测量
- java中像scanf一样多个输入_VB模拟键盘输入的N种方法
- tcsc工作原理matlab仿真,基于Matlab的TCSC建模与仿真研究.doc
- windows系统下多个程序窗口快速切换的方法
- 10款idea神级插件,生产力必备神器!