Goulib.math2模块

数学比数学标准库,无numpy

Goulib.math2.好的。化学机械抛光(x个,)[来源]

比较两个对象x和y,并根据结果返回一个整数。如果x<y,则返回值为负值;如果x==y,则为零;如果x>y,则严格为正值。

Goulib.math2。全部关闭(,b,rel_tol=1e-09,绝对值=0.0)[来源]
退货:如果两个数组的元素在公差内相等,则为True。
Goulib.math2。is编号(_N)(x个)[来源]
退货:如果x是任何类型的数字,包括Complex,则为True
Goulib.math2。is_complex(复杂)(x个)[来源]
Goulib.math2。实际(_R)(x个)[来源]
Goulib.math2。签名()[来源]
退货:如果数字为正,则为1;如果数字为负,则为-1;如果==0,则为0
Goulib.math2。打印(v(v))[来源]
退货:最接近浮点v的int值
Goulib.math2。集成(_I)(x个,rel_tol=0,abs_tol=0)[来源]
退货:如果浮点x是公差内的整数,则为True
Goulib.math2。整数或浮点(x个,rel_tol=0,abs_tol=0)[来源]
参数:x个–int或float
退货:如果x(几乎)是整数,则为int,否则为float
Goulib.math2。格式(x个,小数=3)[来源]

用给定数量的小数格式化浮点,但不是int

退货:如果不是int,则使用小数表示x的字符串repr
Goulib.math2.好的。gcd公司(*参数)[来源]

任意数量参数的最大公约数

Goulib.math2。生命周期管理(*参数)[来源]

任意整数的最小公倍数

Goulib.math2。xgcd公司(,b)[来源]

扩展GCD

退货:(gcd,x,y)其中gcd是a和b的最大公约数

如果b非零,用b的符号;如果b为0,用a的符号。数字x,y是这样的:gcd=ax+by。

Goulib.math2。互质(*参数)[来源]
退货:如果参数彼此互质,则为True
Goulib.math2。互质_gen(限制)[来源]

生成互质对使用Farey序列

Goulib.math2。卡迈克尔(n个)[来源]

Carmichael函数:return:int最小正整数m,这样,对于1到n之间的每一个与n互素的整数a,a ^m mod n=1。:参数n:int:参见:https://en.wikipedia.org/wiki/Carmichael_function网站:参见:https://oeis.org/A002322

也被称为减少的totient函数或最小通用指数函数。

Goulib.math2。is_primitive_root(x个,,s={})[来源]

如果x是m的基元根,则返回True

参数:–m的互素集(如果已知)
Goulib.math2.好的。基本根根()[来源]

生成模m的本原根

Goulib.math2。基元根()[来源]
Goulib.math2。四边形(,b,c(c),allow_complex=假)[来源]

求解二次方程aX^2+bX+c=0

参数:
  • ,b,c(c)–浮动
  • allow_complex(允许复合)–如果为True,函数将返回复数根
退货:

x1、x2实际或复杂解决方案

Goulib.math2。塞尔迪夫(,b)[来源]
Goulib.math2。首次公开募股(x个,,z=0)[来源]
参数:
  • x个–数字(int或float)
  • –int功率
  • z(z)–int可选模量
退货:

如果可能,将(x**y)%z作为整数

Goulib.math2。功率(x个,,z=0)[来源]
退货:(x**y)%z作为整数
Goulib.math2。平方英尺(n个)[来源]

平方根:return:int、float或complex取决于n

Goulib.math2。isqrt公司(n个)[来源]

整数平方根

退货:最大int x,其中x*x<=n
Goulib.math2。icbrt(n个)[来源]

整数立方根

退货:x*x*x≤n的最大整数x
Goulib.math2。平方(_S)(n个)[来源]
Goulib.math2。介绍者(n个,r=2)[来源]

整数r-次方根

退货:int,小于或等于n的r次方根的最大整数。

对于负n,返回大于或等于n的r次方根的最小整数,如果r是偶数,则返回None。

Goulib.math2。is_power(电源)(n个)[来源]
退货:整数,当平方/立方/等时,产生n,

如果不存在此类整数,则为0。注意,这个数字的幂是素数。

Goulib.math2。(x个,)[来源]

Karatsuba快速乘法算法

https://en.wikipedia.org/wiki/Karatsuba_algorithm

版权所有(c)2014 Nayuki项目http://www.nayuki.io/page/karatsuba-multiplication

Goulib.math2。阿克苏姆()[来源]

产生可迭代的累积和:accsum(count(1))->1,3,6,10,…

Goulib.math2。累加()

产生可迭代的累计和:accsum(count(1))->1,3,6,10,…

Goulib.math2。穆尔(数字,初始化=1)[来源]
退货:nums的乘积
Goulib.math2。点_vv(,b,默认值=0)[来源]

向量的点积

参数:
  • –向量(可迭代)
  • b–向量(可迭代)
  • 违约–乘法运算符的默认值
Goulib.math2。点_mv(,b,默认值=0)[来源]

向量的点积

参数:
  • –矩阵(iterable或iterable)
  • b–向量(可迭代)
  • 违约–乘法运算符的默认值
Goulib.math2。点_毫米(,b,默认值=0)[来源]

矩阵的点积

参数:
  • –矩阵(可迭代或可迭代)
  • b–矩阵(iterable或iterable)
  • 违约–乘法运算符的默认值
Goulib.math2。(,b,默认值=0)[来源]

点积

一般但缓慢:如果知道a和b的尺寸,请使用dot_vv、dot_mv或dot_mm

Goulib.math2。0(形状)[来源]
请参见:https://docs.scipy.org/doc/numpy/reference/generated/numpy.zeros.html
Goulib.math2。诊断(v(v))[来源]

创建一个二维数组,将展平的输入作为对角线。

参数:v(v)–如果v是二维数组,则返回其对角线的副本。如果v是一维数组,则返回对角线上有v的二维数组
请参见:https://docs.scipy.org/doc/numpy/reference/generated/numpy.diag.html#numpy.diag
Goulib.math2。身份(n个)[来源]
Goulib.math2。眼睛(n个)
Goulib.math2。转置()[来源]
退货:矩阵m转置
Goulib.math2。最大限度()[来源]

比较N个数组并返回一个包含元素最大值的新数组

参数:–阵列列表(矩阵)
退货:m每列中的最大值列表
请参见:http://docs.scipy.org/doc/numpy/reference/generated/numpy.maximum.html
Goulib.math2。最低限度()[来源]

比较N个数组并返回一个新数组,该数组包含元素方向的最小值

参数:–阵列列表(矩阵)
退货:m每列中的最小值列表
请参见:http://docs.scipy.org/doc/numpy/reference/generated/numpy.miminum.html
Goulib.math2。向量加法(,b,填充值=0)[来源]

不等长向量的加法

Goulib.math2。vecsub公司(,b,填充值=0)[来源]

不等长向量的减法

Goulib.math2。vecneg公司()[来源]

一元否定

Goulib.math2。向量(,b)[来源]

不等长向量的乘积

Goulib.math2。vecdiv公司(,b)[来源]

不等长向量的商

Goulib.math2。灰泥比例尺(,b)[来源]

比较两个列表中的值。返回三对数,其中[a<b,a==b,a>b]

Goulib.math2。(x个,低=0,高=无)[来源]

使x在低和高之间饱和

Goulib.math2。标准2(v(v))[来源]
退货:向量v的正规欧氏范数
Goulib.math2。标准_1(v(v))[来源]
退货:向量v的“曼哈顿”范数
Goulib.math2。标准_inf(v(v))[来源]
退货:向量v的无穷范数
Goulib.math2。规范(v(v),订单=2)[来源]
请参见:http://docs.scipy.org/doc/numpy/reference/generated/numpy.linalg.norm.html
Goulib.math2。距离(,b,norm=<函数norm_2>)[来源]
Goulib.math2。车辆单元(v(v),范数=<函数norm_2>)[来源]
退货:向量归一化
Goulib.math2。汉明(第1页,s2秒)[来源]

计算两个迭代器之间的汉明距离

Goulib.math2。集合_分布(,b)[来源]
请参见:http://stackoverflow.com/questions/11316539/calculating-the-distance-between两个无序集
Goulib.math2。集合_levenshtein(,b)[来源]

集合上的levenshtein距离

请参见:http://en.wikipedia.org/wiki/Levenshtein_distance
Goulib.math2。列文施泰因(序列1,序列2)[来源]

levenshtein距离

退货:两个迭代器之间的距离
请参见:http://en.wikipedia.org/wiki/Levenshtein_distance
Goulib.math2.好的。重现(签名,,cst=0,max=无,修改=0)[来源]

通用复发发生器

参数:
  • 签名–定义重复发生的因素
  • –初始值列表
Goulib.math2。斐波那契根(max=无,修改=0)[来源]

生成fibonacci序列

Goulib.math2。斐波那契(n个,修改=0)[来源]

斐波那契级数n元

参数:
  • n个–int可能非常高,比如1e19!
  • 国防部–int可选模块
Goulib.math2。is_fibonacci公司(n个)[来源]

如果n在斐波那契数列中,则返回True

Goulib.math2。皮萨诺周期(国防部)[来源]
Goulib.math2。比萨诺周期(国防部)[来源]
Goulib.math2。科拉茨(n个)[来源]
Goulib.math2。collatz_gen公司(n=0)[来源]
Goulib.math2.好的。collatz周期(n个)[来源]
Goulib.math2。帕斯卡根()[来源]

按行读取的帕斯卡三角形:C(n,k)=二项式(n,k)=n/(k!*(n-k)!),0<=k<=n。

https://oeis.org/A007318

Goulib.math2。加泰罗尼亚语(n个)[来源]

加泰罗尼亚数字:C(n)=二项式(2n,n)/(n+1)=(2n)/(n!(n+1)!)。

Goulib.math2。加泰罗尼亚根()[来源]

生成加泰罗尼亚数字:C(n)=二项式(2n,n)/(n+1)=(2n)/(n!(n+1)!)。也称为西格纳数。

Goulib.math2。是_pythagoreantriple(,b,c(c))[来源]
Goulib.math2。primitive_triples(基元_三元组)()[来源]

生成原始勾股三元组x<y<z

按斜边z排序,然后按最长边y排序通过Berggren矩阵和三叉树的宽度优先遍历:参见:https://en.wikipedia.org/wiki/Tree_of_primitive_Pythagorean_triples网站

Goulib.math2。三元组()[来源]

生成所有毕达哥拉斯三元组三元组x<y<z按斜边z排序,然后按最长边y排序

Goulib.math2。约数(n个)[来源]
参数:n个–整数
退货:n的所有除数:除数(12)->1,2,3,6,12

包括1和n,除了1,它返回单个1以避免与除数之和混淆…

Goulib.math2.好的。proper_除数(n个)[来源]
退货:除n本身外,n的所有除数。
Goulib.math2。筛子,筛子(n个,oneisprime=错误)[来源]

从2到素数<n非常快(n<10000000),只需0.4秒。

例子:>>>主索(25)[2, 3, 5, 7, 11, 13, 17, 19, 23]

算法与Python来源:Robert William Hankshttp://stackoverflow.com/questions/17773352/python-sieve-prime-numbers

Goulib.math2。素数(n个)[来源]

n个第一素数的记忆列表

警告:不要用大n调用,而是使用primegen
Goulib.math2。是首选项(_E)(n个,eb=(2,))[来源]

欧拉素性检验

参数:
  • n个–要测试的int数字
  • 电子束–测试依据
退货:

非素数为假,素数为真,但也适用于许多伪素数…

请参见:

https://en.wikipedia.org/wiki/Euler_pseudoprime网站

Goulib.math2。是素数(_P)(n个,oneisprime=错误,tb=(3,5,7,11),eb=(2,),mrb=无)[来源]

主素性测试。

参数:
  • n个–要测试的int数字
  • 一个罪–bool如果1应该被视为prime,则为True(很久以前是这样的)
  • 结核–试验划分依据
  • 电子束–欧拉试验依据
  • 磁共振波谱–Miller-Rabin基础,无自动
请参见:

https://en.wikipedia.org/wiki/Baillie%E2%80%93PSW_primality_test

这是BPSW测试的一个实现(Baillie-Pomerance-Selfrigge-Wagstaff)对于速度有一些预置,对于所有小于2^64的数字都是确定的事实上,虽然人们推测存在无限多的假阳性,目前还没有发现假阳性。预过滤器包括针对2的试验划分和元组tb的元素,检查n是否平方,并对元组eb中的基进行Euler素性测试。如果数字小于3825123056546413051,我们使用Miller-Rabin检验基于一组已知在该范围内测试具有确定性的基础。

Goulib.math2。下一次犯罪(n个)[来源]

确定严格大于n的最小素数,这似乎很有效率。

Goulib.math2。预备犯(n个)[来源]

确定严格小于n的最大素数是非常无效的。

Goulib.math2。素数_gen(开始=2,stop=无)[来源]

从头开始生成质数

Goulib.math2。随机素数()[来源]

返回指定位长度的随机数

Goulib.math2。欧几里得根()[来源]

生成欧几里德数:1+前n个素数的乘积

Goulib.math2。主要因素(号码,开始=2)[来源]

生成num的所有素因子(有序)

Goulib.math2。液化石油气(n个)[来源]

最大素因子

Goulib.math2。全球生产函数(n个)[来源]

最大素因子

Goulib.math2。素数除数(号码,开始=2)[来源]

生成num的唯一素除数(有序)

Goulib.math2.好的。是多个(_M)(n个,因素)[来源]

如果n只有因子作为主因子,则返回True

Goulib.math2。因式分解(n个)[来源]

找出n的素因子及其频率。例子:

>>>因素(786456)
[(2,3), (3,3), (11,1), (331,1)]
Goulib.math2。因素(n个)[来源]
Goulib.math2。除数的数量(n个)[来源]
Goulib.math2。欧米茄(n个)[来源]

除以n的不同素数

Goulib.math2。大美人(n个)[来源]

重数计数n的素数除数

Goulib.math2。莫比乌斯(n个)[来源]

Möbius(或Moebius)函数mu(n)。mu(1)=1;mu(n)=(-1)^k,如果n是k个不同素数的乘积;否则mu(n)=0。

Goulib.math2。euler_phi(n个)[来源]

欧拉指向函数

请参见:http://stackoverflow.com/questions/10109040/如何使用many-numbers-below-nare-coprimes-to-n
Goulib.math2。托蒂恩(n个)

欧拉指向函数

请参见:http://stackoverflow.com/questions/1019040/how-many-numbers-blow-n-are-coprimes-to-n
Goulib.math2。坎普纳(n个)[来源]

Kempner函数,也称为Smarandache函数

退货:int最小正整数m,以便n除以m!。
参数:n个–整数
请参见:https://en.wikipedia.org/wiki/Kempner_function网站
请参见:http://mathworld.wolfram.com/SmarandacheFunction.html
Goulib.math2。prime_k倍(星座)[来源]

生成具有指定差异的素数元组

参数:星座–要返回的素数之间的int差异是可迭代的
注:负int表示差值不能是质数
请参见:https://en.wikipedia.org/wiki/Prime_k-tuple(英文)

(0,2)双素数(0,4)类素数(0,6)性感素数(0,2,6),(0,4,6)素数三元组(0,6,12,-18)性感三胞胎(0,2,6,8)素数四胞胎(0,6,12,18)性感四胞胎(0,2,6,8,12),(0,4,6,10,12)五组素数(0,4,6,10,12,16)六重素数

Goulib.math2。双素数()[来源]
Goulib.math2.好的。表哥_罪犯()[来源]
Goulib.math2。性犯罪()[来源]
Goulib.math2。性感素三分球()[来源]
Goulib.math2。性素四胞胎()[来源]
Goulib.math2。卢卡斯·莱默(第页)[来源]

Mersenne指数p的Lucas-Lehmer素性检验

参数:第页–整数
退货:如果2^p-1是质数,则为True
Goulib.math2。数字生成(号码,基数=10)[来源]

在基本BACKWARDS中生成num的int位数

Goulib.math2。数字(号码,基数=10,rev=错误)[来源]
退货:num的数字列表,以基数表示,可以颠倒
Goulib.math2。数字和(号码,f=无,基数=10)[来源]

位数总和

参数:
  • 号码–数量
  • (f)–对每个数字应用int幂或函数
  • 基础–可选底座
退货:

num的f(数字)之和

数字和(num)->数字和digsum(num,base=2)->num二进制表示中的1位数数字和(num,2)->数字平方和digsum(num,f=lambda x:x**x)->被提升到其自身幂的数字之和

Goulib.math2。整数_指数(,b=10)[来源]
退货:int除以a的b的最大幂。
请参见:https://reference.wolfram.com/language/ref/IntegerExponent.html
Goulib.math2.好的。追踪_零(,b=10)
退货:int除以a的b的最大幂。
请参见:https://reference.wolfram.com/language/ref/IntegerExponent.html
Goulib.math2。电源(v(v))[来源]
退货:v[0]**v[1]**v[2]…
请参见:http://ajcr.net#巨蟒-功率消耗/
Goulib.math2。携带(,b,基数=10,位置=0)[来源]
退货:基数中添加a+b所需的进位数为int
Goulib.math2。动力传动系统(n个)[来源]
退货:v[0]**v[1]*v[2]**v[3]…**(v[-1]或0)
作者:#Chai Wah Wu,2017年6月16日
请参见:http://oeis.org/A133500
Goulib.math2。字符串基础(_B)(数量,基数=10,数字='0123456789abcdefghijklmnopqrstuvwxyz')[来源]
退货:

num在base中的字符串表示

参数:
  • 号码–int数字(十进制)
  • 基础–int基数,默认为10
  • 数字–字符串,所有字符表示基数中的数字。忽略base-th后的字符
Goulib.math2。int基础(_B)(号码,基础)[来源]
退货:

num在base中的int表示

参数:
  • 号码–int数字(十进制)
  • 基础–int基数,<=10
Goulib.math2。数字_来自_位数(数字,基数=10)[来源]
参数:
  • 数字–表示给定基数中数字的字符串或数字列表
  • 基础–int base,默认为10
退货:

int数字

Goulib.math2。颠倒()[来源]
Goulib.math2。is_palindromic(正向)(号码,基数=10)[来源]

检查base'base'中的'num'是否是回文,如果可以的话,就这样从左到右、从右到左等量阅读。

Goulib.math2。is_anagram(安纳格拉姆)(数字1,数字2,基数=10)[来源]

检查“num1”和“num2”的基数是否相同

Goulib.math2。是_数字(号码,基数=10)[来源]
退货:如果num包含指定基数中的所有数字,则为True
Goulib.math2。有弹性的(n个,up=假,down=错误)[来源]
参数:
  • n个–要测试的整数
  • 向上的–布尔
  • 向下–布尔

bouncy(x)对bouncy数返回True(数字构成严格非单调序列)(A152054)bouncy(x,True,None)对数字顺序不减的数字返回True(OEIS A009994)bouncy(x,None,True)对数字按非递增顺序排列的数字返回True(OEIS A009996)

Goulib.math2。重新定义(_G)(基数=10,数字=1)[来源]

生成重复单位

Goulib.math2。重新组合(n个,基数=10,数字=1)[来源]
退货:第n个单位
Goulib.math2。理性形式(分子,分母)[来源]

关于有理数的十进制表示的信息。

退货:5整数:整数、小数、移位、重复、循环
  • shift是小数长度,如果有前导零
  • 循环是重复的长度,如果有前导零的话
Goulib.math2。理性str(n个,d日)[来源]
Goulib.math2。理性周期(号码,兽穴)[来源]

num/den十进制展开式的周期部分。任何初始0都放置在循环结束时。

请参见:https://oeis.org/A036275
Goulib.math2。四面体的(n个)[来源]
退货:int第n个四面体数
请参见:https://en.wikipedia.org/wiki/Tetrahedral_number(网址:https://en.wikipedia.org/wiki/Tetrahedral_number)
Goulib.math2。平方和(n个)[来源]
退货:1^2+2^2+3^2+…+n^2
请参见:https://en.wikipedia.org/wiki/Square_pyramdial_number(英文)
Goulib.math2。金字塔形的(n个)
退货:1^2+2^2+3^2+…+n^2
请参见:https://en.wikipedia.org/wiki/Square_pyramdial_number(英文)
Goulib.math2。多维数据集总和(n个)[来源]
退货:1^3+2^3+3^3+…+n^3
请参见:https://en.wikipedia.org/wiki/Squared_triangular_number
Goulib.math2。伯努利根(初始化=1)[来源]

贝努利数发生器

参数:初始化–int-1或+1。
  • -B1=-1/2的“第一伯努利数”为1
  • +B1=+1/2的“第二伯努利数”为1

https://en.wikipedia.org/wiki/Bernoulli_number(英文) https://rosettacode.org/wiki/Bernoulli_numbers#Python:_Optimised_task_algorithm

Goulib.math2.好的。伯努利(n个,初始化=1)[来源]
Goulib.math2。福勒哈伯(n个,第页)[来源]

前n个正整数的p次幂之和

退货:1^p+2^p+3^p+…+n^p
请参见:https://en.wikipedia.org/wiki/Faluhaber%27s_formula
Goulib.math2。快乐(_H)(n个)[来源]
Goulib.math2。荔枝色(n个)[来源]
Goulib.math2。荔枝计数(n个,极限=96)[来源]

n变成回文之前的lychrel迭代次数

参数:
  • n个–要测试的int数字
  • 限制–int最大循环数。默认值96对应于已知的最迟钝的非莱氏数
警告:

有回文lychrel数,如4994

Goulib.math2。是_lychrel(n个,极限=96)[来源]
警告:有回文lychrel数,如4994
Goulib.math2。多边形的(,n个)[来源]
Goulib.math2。三角形(n个)[来源]
退货:第n个三角形数,定义为[1,n]个值的总和。
请参见:http://en.wikipedia.org/wiki/Triangular_number
Goulib.math2。三角形(n个)
退货:第n个三角形数,定义为[1,n]个值的总和。
请参见:http://en.wikipedia.org/wiki/Triangular_number
Goulib.math2。是三角形(_T)(x个)[来源]
退货:如果x是三角形数字,则为True
Goulib.math2。是三角形的(_T)(x个)
退货:如果x是三角形数字,则为True
Goulib.math2。广场(n个)[来源]
Goulib.math2。五边形的(n个)[来源]
退货:第n个五边形数
请参见:https://en.wikipedia.org/wiki/Pentagonal_number网站
Goulib.math2。是五边形(_P)(n个)[来源]
退货:如果x是五边形数,则为True
Goulib.math2。六边形(n个)[来源]
退货:第n六边形数
请参见:https://en.wikipedia.org/wiki/Hexagonal_number(六边形编号)
Goulib.math2。是六边形(n个)[来源]
Goulib.math2。七边形的(n个)[来源]
Goulib.math2。是七边形的(n个)[来源]
Goulib.math2。八角形的(n个)[来源]
Goulib.math2。是直角的(n个)[来源]
Goulib.math2。隔板(n个)[来源]

配分函数p(n)

给出非负整数n的分区数转换为正整数。(将零分为一个正整数,即空分区,因为空和定义为0。)

请参见:http://oeis.org/wiki/Partition_function网站 https://oeis.org/A000041
Goulib.math2.好的。分区Q(n个,d=0)[来源]
Goulib.math2。获取卡迪纳名称(号码)[来源]

获取数字的基数名称(0到100万)

Goulib.math2。丰度(n个)[来源]
Goulib.math2。完美(_P)(n个)[来源]
退货:-如果n不足,则为1;如果完美,则为0;如果丰富,则为一
请参见:https://en.wikipedia.org/wiki/Perfect_number(英文),

https://en.wikipedia.org/wiki/Abundant_number,https://en.wikipedia.org/wiki/缺陷编号

Goulib.math2。数字位数(号码,基数=10)[来源]

返回num的位数(以“base”为基数表示)

Goulib.math2。脉轮(n个)[来源]

求解x,y整数的x^2-n*y^2=1

https://en.wikipedia.org/wiki/Pell%27s_equation https://en.wikipedia.org/wiki/Chakravala_method

Goulib.math2。工厂(n个,k个)[来源]

k阶n的多因子,n(!!…!)。

这是n个跳过k个值的多因素。例如,
factorialk(17,4)=17!!!!=17 * 13 * 9 * 5 * 1
特别是,对于任何整数n个,我们有
factorialk(n,1)=阶乘(n)factorialk(n,2)=阶乘2(n)
参数:n个–int计算多因子。如果n个<0,返回值为0。

:param k:int多因子的顺序。:return:int的Multifactrialn个.

Goulib.math2。工厂2(n个)[来源]
Goulib.math2。阶乘生成(f=<函数<lambda>>)[来源]

阶乘生成器:param f:在每个步骤应用的可选函数

Goulib.math2。二项式(n个,k个)[来源]

二项式系数“n选择k”:参数:n,k int:return:int,在k中选择n个项目的方法数,无序

请参见:https://en.wikipedia.org/wiki/二项式
Goulib.math2。选择(n个,k个)

二项式系数“n选择k”:参数:n,k int:return:int,在k中选择n个项目的方法数,无序

请参见:https://en.wikipedia.org/wiki/二项式
Goulib.math2。合并(n个,k个)

二项式系数“n选择k”:参数:n,k int:return:int,在k中选择n个项目的方法数,无序

请参见:https://en.wikipedia.org/wiki/二项式
Goulib.math2。二项式指数(n个,k个,第页)[来源]
退货:int除以二项式(n,k)的p的最大幂
Goulib.math2。日志系数(n个)[来源]
退货:用Ramanujan公式对ln(n!)进行浮点逼近
Goulib.math2。对数对数(n个,k个)[来源]
退货:ln(二项式(n,k))的浮点逼近
Goulib.math2。伊洛格(,b,upper_bound=假)[来源]

离散对数x,使得b^x=a

参数:
  • ,b–整数
  • 上限(_B)–bool。如果为True,则返回b^x>=a的最小x
退货:

x整数,例如b^x=a、upper_bound或None

https://en.wikipedia.org/wiki/Discrete_logarithm(英文)

Goulib.math2。(u个,v(v),unit=真)[来源]
参数:
  • u个,v(v)–可迭代向量
  • 单元–bool如果向量是单位向量,则为True。假增加计算
退货:

u和v单位向量i之间的浮点数角n弧度

Goulib.math2。sin_over_x(x个)[来源]

数值安全sin(x)/x

Goulib.math2。球面线性插值(u个,v(v),t吨)[来源]

球面线性插值

参数:
  • u个,v(v)–3D单位向量
  • t吨–间隔[0,1]的浮点
退货:

在u和v之间插值的向量

Goulib.math2。成比例的(非西亚特,投票)[来源]

使用https://en.wikipedia.org/wiki/Hagenbach-Bishoff_quota方法

参数:
  • 非西亚特–int要分配的座位数
  • 投票–int或float的可迭代加权各方
结果:

分配给各方的ints席位列表

Goulib.math2。三角形分区(x个,n个)[来源]

将1分成n个分数,这样:

  • 他们的总和是1
  • 它们遵循三角形线性重分区(对不起,目前没有更好的名称),其中x/1是最大值
Goulib.math2。矩形_分区(x个,n个,小时)[来源]

将1分成n个分数,这样:

  • 他们的总和是1
  • 它们沿着高度h<1的脉冲进行再分配
Goulib.math2。德布瑞恩(k个,n个)[来源]

字母k的De Bruijn序列和长度n的子序列。

https://en.wikipedia.org/wiki/De_Bruijn_sequence(英文)

Goulib.math2。修改(_V)(,b)[来源]
Goulib.math2。修改div(,b,)[来源]
退货:x使得(b*x)mod m=a mod m
Goulib.math2。修改(_F)(n个,)[来源]
退货:不!模块m
Goulib.math2。中文_维护者(,)[来源]

http://en.wikipedia.org/wiki/Chinese_remainder_theorem

参数:
  • –int模列表
  • –int余数列表
退货:

最小整数x,使得x mod ni=ai

Goulib.math2。mod_binomial(模态_非模态)(n个,k个,,q=无)[来源]

计算大n,k,m的C(n,k)mod m

参数:
  • n个–int元素总数
  • k个–int要拾取的元素数
  • –int模(或内部使用的(m,p)元组的可迭代)
  • q个–prime m的可选整数幂m,内部使用
Goulib.math2。baby_step_giant_step婴儿步(,,n个)[来源]

解决离散对数问题(DLP)y=a**x mod n

Goulib.math2。mod_最大值(A类,B类,修改=0)[来源]
Goulib.math2。mod_matpow模式(M(M),权力,修改=0)[来源]
Goulib.math2。矩阵_幂(M(M),权力,修改=0)
Goulib.math2。修改(_S)(n个,第页)[来源]

模sqrt(n)mod p

Goulib.math2。修改(_fac)(n个,国防部,mod_is_prime=假)[来源]

模阶乘:返回n!%如果模是素数,则使用Wilson定理https://en.wikipedia.org/wiki/Wilson%27s_ethemation

Goulib.math2。pi_数字_生成()[来源]

将π数字生成为整数序列!使用Jeremy Gibbons插口生成器

:请参阅:http://www.cs.ox.ac.uk/people/jeremy.gibbons/publications/spigot.pdf

Goulib.math2。pfactor(功率因数)(n个)[来源]

sprp的Helper函数。

返回元组(x,y),其中n-1==(2**x)*y和y是奇数。我们把这个部分分开,这样就不会浪费时间当我们要根据多个基数检查n时,重新计算每个基数的s和d。

Goulib.math2。sprp(sprp)(n个,,s=无,d=无)[来源]

使用强概率素性测试以a为基础检查n的素性。如果存在,s和d应分别为第一项和第二项,函数pfactor(n)返回的元组的

Goulib.math2。雅各比(,第页)[来源]

计算雅可比符号(a|p),其中p是正奇数。:参见:https://en.wikipedia.org/wiki/Jacobi_symbol

Goulib.math2。民意测验Rho_brent(n个)[来源]

Brent对Pollard的rho算法的改进。

退货:int n如果n是素数

否则,我们会一直吃力,直到找到一个严格介于1和n之间的因子n。:参见:https://en.wikipedia.org/wiki/Pollard%27s_rho_algorithm

Goulib.math2.好的。投票_pm1(n个,B1=100,B2=1000)[来源]

波拉德的p+1算法,两阶段版本。

退货:n如果n是素数;否则,我们会一直打嗝,直到我们找到一个严格在1和n之间的因子n。
Goulib.math2。姆卢卡斯(v(v),,n个)[来源]

williams_pp1()的Helper函数。沿Lucas序列模n乘以。

Goulib.math2。威廉斯第1页(n个)[来源]

威廉姆斯的p+1算法。:return:n,如果n是质数否则,我们会一直吃力,直到找到一个严格介于1和n之间的因子n。

Goulib.math2。ecadd公司(第1页,第2页,第0页,n个)[来源]
Goulib.math2。埃克杜布(第页,A类,n个)[来源]
Goulib.math2。埃克穆尔(,第页,A类,n个)[来源]
Goulib.math2。系数_ecm(n个,B1=10,B2=20)[来源]

因子n使用椭圆曲线法,使用蒙哥马利曲线和类似算法波拉德p-1方法的两阶段变体。:return:n如果n是素数否则,我们会一直跳,直到找到一个严格介于1和n之间的因子n

Goulib.math2。传说(,第页)[来源]

用于编译Legendre符号(a|p)的函数。如果p是复合的,则返回值没有意义:请参阅:https://en.wikipedia.org/wiki/Legendre_symbol

Goulib.math2。传奇2(,第页)[来源]

用于编译Legendre符号(a|p)的函数。如果p是复合的,则返回值没有意义:参见:https://en.wikipedia.org/wiki/Legendre_symbol