- 博客(98)
- 资源 (2)
- 收藏
- 关注
原创 python 实现factorial iterative阶乘迭代算法
阶乘迭代算法是一种计算给定正整数n的阶乘(n!)的方法,其中不使用递归,而是通过循环来迭代地计算结果。阶乘的定义是:n!= n * (n-1) * (n-2) * … * 2 * 1,特别地,0!= 1。# 初始化结果为1,因为阶乘的乘法操作从1开始result = 1# 遍历从1到n的所有整数# 将当前数乘到结果上# 返回最终结果# 示例n = 5print(f"
2024-09-12 08:43:46 216
原创 python 实现factorial recursive阶乘递归算法
阶乘递归算法是一种常用的递归算法,用于计算一个数的阶乘。阶乘定义为所有小于及等于该数的正整数的积,符号为n!。例如,5!递归算法的基本思想是将问题分解为更小的子问题,直到达到一个可以直接解决的简单情况(称为基准情形)。对于阶乘递归算法,基准情形是0的阶乘,定义为0!= 1。# 基准情形if n == 0:return 1# 递归步骤else:# 测试函数print(factorial(5)) # 输出: 120。
2024-09-12 08:40:50 238
原创 python 实现fermat little theorem费马小定理算法
费马小定理(Fermat’s Little Theorem)是数论中的一个重要定理,它提供了一种在特定条件下计算幂的模的简单方法。该定理指出,如果p是一个质数,且整数a不是p的倍数,则有a^(p-1) ≡ 1 (mod p)。基于这个定理,可以设计一种算法来测试一个数是否为质数,或者在某些计算中简化幂的模运算。费马小定理的质数测试算法。
2024-09-12 08:38:46 283
原创 python 实现fibonacci斐波那契算法
斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……这个数列从第3项开始,每一项都等于前两项之和。递归方法递归是最直观的解法,但效率很低,因为它重复计算了很多子问题。if n <= 1:return nelse:动态规划方法使用动态规划可以避免重复计算,提高算法效率。
2024-09-11 09:11:25 871
原创 python 实现gamma recursive伽玛递归算法
Gamma 递归(或伽玛递归)不是一个普遍认可的、广泛使用的术语,它可能是在特定上下文或文献中定义的。然而,从“递归”这一关键词出发,我们可以推测这是一种递归算法,可能与 Gamma 函数(在数学和统计学中广泛使用的一个函数)有关。不过,在标准的算法或计算机科学文献中,并没有直接称为“Gamma 递归”的算法。但是,我们可以探讨一下递归算法的一般概念,以及 Gamma 函数可能如何与某种递归过程相关联。递归算法递归算法是一种直接或间接调用自身的算法。
2024-09-11 08:40:24 471
原创 python 实现gamma 伽玛功能算法
Gamma(伽玛)功能算法通常与不同的领域和应用相关,包括但不限于图像处理、光学测试、数学计算等。在图像处理中的Gamma校正在图像处理中,Gamma校正是一种用于调整图像亮度的方法,特别是为了校正图像中的非线性亮度响应。YXeγY=(X+e)^γYXeγ其中,𝛾是Gamma值,𝑒是补偿系数。通过调整𝛾值,可以改变图像的亮度分布,使得图像更接近于人眼感知的亮度。Gamma校正的步骤通常包括:归一化:将像素值从原始范围(如0-255)转换为0到1之间的实数。
2024-09-10 08:58:40 1302
原创 python 实现gaussian高斯算法
高斯算法(Gaussian algorithm)是一个广泛的概念,因为“高斯”这个名字与许多不同的数学和算法技术相关联。但是,在大多数情况下,当人们提到“高斯算法”时,他们可能是在指高斯消元法(Gaussian elimination),这是一种在数学中用于求解线性方程组、计算矩阵的行列式、矩阵的逆等问题的算法。高斯消元法(Gaussian Elimination)高斯消元法是一种在解线性方程组时常用的算法。
2024-09-10 08:45:16 664
原创 python:实现greatest common divisor最大公约数算法
计算最大公约数(Greatest Common Divisor, GCD)的算法有多种,其中最著名和常用的是欧几里得算法(Euclidean algorithm)。下面我会详细介绍欧几里得算法的基本思想及其实现方式。欧几里得算法欧几里得算法基于一个定理:两个正整数a和b(a>b),它们的最大公约数等于a除以b的余数c和b之间的最大公约数。用数学表达式表示就是:其中,gcd(a, b)表示a和b的最大公约数,a mod b表示a除以b的余数。算法步骤比较两个数a和b,如果a小于b,则交换它们。
2024-09-10 08:40:36 199
原创 python 实现hamming numbers汉明数算法
汉明数(Hamming numbers)是形式为2i⋅3j⋅5k2i⋅3j⋅5k的正整数,其中 𝑖,𝑗,𝑘是非负整数。汉明数序列的前几项是 1, 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, …在Python中,我们可以使用最小堆(Min Heap)来高效地生成汉明数序列。这是因为最小堆可以帮助我们始终选择当前可生成的最小汉明数,并基于它生成新的汉明数。# 初始化一个最小堆,初始元素为(1, 0, 0, 0),表示当前的汉明数及其因子指数。
2024-09-09 08:46:41 479
原创 python 实现simpson approx辛普森算法
辛普森算法(Simpson’s rule)是一种用于数值积分的近似方法,它通过用抛物线来近似函数曲线上的小段来估计定积分的值。这种方法特别适用于那些难以找到精确解析解或需要快速数值解的积分问题。
2024-09-09 08:42:30 797
原创 python 实现判断IP4地址是否有效算法
要判断一个IPv4地址是否有效,我们可以根据IPv4地址的规范来进行。IPv4地址是一个32位的二进制数,通常以点分十进制的形式表示,分为四段,每段由0到255之间的数字组成,段与段之间用点(.)分隔。下面是一个简单的算法,用于判断一个给定的字符串是否为有效的IPv4地址:检查输入格式:首先,检查字符串是否包含四个由点分隔的部分。分割字符串:将字符串按.分割成四部分。检查分割结果:确保分割后得到的确切是四部分。检查每部分:确保每部分都是数字字符串。
2024-09-08 21:35:39 504
原创 python 实现square free number无平方因子数算法
无平方因子数(Square-Free Number)的算法主要基于检查一个数的质因数分解中是否包含任何质数的平方。以下是一种判断无平方因子数的通用算法,以及一种使用JavaScript实现的示例。通用算法步骤找到所有质因数:首先,找到给定数的所有质因数。检查幂次:然后,检查每个质因数的幂次是否为1。如果所有质因数的幂次都是1,则该数是无平方因子数;否则,它不是。JavaScript实现示例// 找到num的所有质因数### 结论无平方因子数的判断算法主要基于质因数分解和幂次检查。
2024-09-08 21:30:21 270
原创 python 实现第k个字典排列算法
"第k个字典排列"算法通常指的是在给定的字符集合(例如,字符串中的字符)中,找到所有可能排列的第k个排列。这个问题可以通过多种方法解决,但一个常见且高效的方法是使用“下一个排列”算法的变种,或称为“第k个排列”的直接算法。方法一:使用“下一个排列”的变种生成所有排列:首先生成所有排列,但显然这种方法对于较大的输入集合是不切实际的,因为它涉及到大量的计算和存储。排序并使用“下一个排列”:我们可以先将字符串排序(字典序最小的排列),然后调用k-1次“下一个排列”算法,直到得到第k个排列。
2024-09-07 22:54:47 438
原创 python 实现kadanes卡达内斯算法
Kadane’s算法(也被称为Kadane’s扫描算法或Kadane算法)是一种用于解决最大子数组和问题的动态规划算法。这类问题的目标是在给定整数数组中找到一个连续的子数组,使得该子数组的元素之和最大(即使数组中包含负数)。Kadane’s算法的核心思想是通过迭代数组的每个元素,同时维护两个变量来跟踪局部最优解(即在当前位置结束的最大子数组和)和全局最优解(即全局最大子数组和)。具体步骤如下:初始化两个变量:maxEndingHere表示在当前位置结束的最大子数组和,初始值为数组的第一个元素;
2024-09-07 22:51:14 460
原创 python 实现lucas数列算法
Lucas数列(Lucas sequence)是一类特殊的数学数列,它与斐波那契数列(Fibonacci sequence)有相似之处,但在定义上有所不同。Lucas数列的定义方式可能因具体情境而异,但通常它遵循与斐波那契数列类似的递推关系,但初始值不同。一般来说,Lucas数列可以由以下递推关系定义:L(1) = 1L(2) = 3L(n) = L(n-1) + L(n-2),对于n > 2这里,L(n) 表示Lucas数列的第n项。Lucas数列的算法。
2024-09-06 08:57:18 380
原创 python 实现matrix exponentiation矩阵求幂算法
矩阵求幂算法(Matrix Exponentiation)是一种通过利用矩阵乘法的结合律来高效地计算矩阵的幂的算法。这种方法特别适用于在算法竞赛和计算机科学领域中解决需要快速计算矩阵幂的问题,如求解线性递推关系、图论中的路径计数等。基本思想矩阵求幂算法的基本思想类似于整数快速幂算法(快速幂算法),通过递归或迭代的方式将矩阵幂的计算过程分解为更小的问题。具体来说,通过利用矩阵乘法的结合律ABnAnBnABnAnBn(注意这里并不总是成立,但AnBnA^nB^nAn。
2024-09-06 08:53:01 1175
原创 python 实现求两个数组的中位数算法
要求两个数组的中位数,我们首先需要明确中位数的定义:如果数组是奇数长度的,中位数就是排序后位于中间的数;如果数组是偶数长度的,中位数是排序后中间两个数的平均值。对于两个数组 A 和 B,假设它们的长度分别为 m 和 n,我们可以采用以下策略来找到它们合并后的中位数:方法一:合并排序合并两个数组为一个新数组 C。对数组 C 进行排序。如果 C 的长度是奇数,中位数是 C[(len©-1)//2];
2024-09-06 08:40:43 440
原创 python 实现miller rabin米勒-拉宾素性检验算法
米勒-拉宾素性检验(Miller-Rabin prime test)算法是一种用于判断一个正整数是否为素数的概率性算法。它基于费马小定理和二次探测定理。以下是关于该算法的一些详细解释:起源卡内基梅隆大学的Gary Lee Miller教授首先提出了基于广义黎曼猜想的确定性算法,但由于广义黎曼猜想并未被证明,以色列耶路撒冷希伯来大学的Michael O. Rabin教授后来对其进行了修改,提出了不依赖于该假设的随机化算法。
2024-09-05 08:39:13 668
原创 python 实现mobius function莫比乌斯函数算法
莫比乌斯函数(Möbius function),通常用符号μ(n)表示,是数论中的一个重要函数。其算法主要基于该函数的定义和性质,以下是一种计算莫比乌斯函数的算法思路:定义与性质:当n=1时,μ(n)=1。当n存在平方因子时,μ(n)=0。当n是素数或奇数个不同素数之积时,μ(n)=-1。当n是偶数个不同素数之积时,μ(n)=1。算法实现:一个高效的算法是使用线性筛法(也称为埃拉托斯特尼筛法的扩展)来计算1到N之间所有数的莫比乌斯函数值。这种方法可以在线性时间内完成计算。
2024-09-05 08:35:11 666
原创 python 实现modular exponential模指数算法
模指数算法(Modular Exponential),也称为模幂运算算法(Modular Exponentiation),是一种用于计算大数的指数幂对指定模数取模的算法。这种算法在密码学、信息安全、计算机科学等领域有广泛的应用,如RSA加密算法等。模指数算法的基本原理是将指数表示为二进制形式,并逐位进行幂的乘法和取模操作,从而避免了大数计算时的性能问题。以下是这个算法的大致步骤:初始化结果:将结果变量result初始化为1。转换指数:将指数b转换为二进制形式。
2024-09-04 08:44:02 805
原创 python 实现monte carlo蒙特卡罗算法
Monte Carlo(蒙特卡罗)算法是一种基于随机采样的计算方法,其基本思想是通过生成随机样本并利用统计学原理来估计数学问题的解。这种方法最初由美国洛斯阿拉莫斯国家实验室的科学家斯坦尼斯拉夫·乌拉姆(Stanislaw Ulam)和尤里·维加(Nicholas Metropolis)在20世纪40年代初开发,用于模拟核反应堆中的中子传输问题。基本原理Monte Carlo算法的核心原理是利用随机数和概率统计方法来模拟问题,通过大量随机样本的采样,得到问题的概率分布或期望值。
2024-09-04 08:41:05 693
原创 python 实现perfect cube完全立方数算法
完全立方数(Perfect Cube)是一个整数,它可以表示为某个整数的三次幂,即形如n3n^3n3的数,其中 n 是整数。要判断一个给定的数 x 是否是完全立方数,或者找出小于或等于某个数 N 的所有完全立方数,我们可以采用几种不同的方法。方法一:直接计算并比较对于给定的数 x,我们可以从 1 开始,计算每个整数的三次幂,直到这个三次幂大于 x。如果在这个过程中找到了某个数的三次幂等于 x,则 x 是完全立方数。n = 1n += 1# 示例。
2024-09-03 08:55:19 669
原创 python 实现newton raphson牛顿-拉夫森算法
牛顿-拉夫森(Newton-Raphson)算法,也被称为牛顿迭代法或牛顿法,是一种在实数域和复数域上近似求解方程的方法,特别适用于非线性方程的数值求根。这种算法由艾萨克·牛顿在17世纪提出,但相关的概念在更早的时间已经被约瑟夫·拉弗森等人讨论过。基本原理牛顿-拉夫森算法的基本思想是利用泰勒级数展开式的前几项来近似求解方程。对于非线性方程f(x) = 0,设x0为初始近似值,算法通过迭代过程逐渐逼近方程的根。
2024-09-03 08:44:33 701
原创 python 实现perfect square完全平方数算法
完全平方数(Perfect Square)是一个整数,它可以表示为某个整数的平方。例如,1,4,9,16,25,… 都是完全平方数,因为112422932112422932,依此类推。要判断一个给定的数 n 是否是完全平方数,有几种方法可以实现。平方根法最直接的方法是计算该数的平方根,并检查平方根是否为整数。在编程中,由于浮点数运算的精度问题,直接比较平方根是否为整数可能不准确。
2024-09-02 08:56:32 888
原创 python 实现multiplicative persistence算法
Multiplicative Persistence算法是一种用于计算正整数乘法持续时间的算法。该算法的基本思想是将给定的正整数分解成各个位数上的数字,并将它们相乘,然后不断重复这个过程,直到最终只剩下一个一位数为止。在这个过程中,乘数持续时间(也就是乘法持续性)即为计算的次数。在Python中,可以使用递归或迭代的方式来实现Multiplicative Persistence算法。
2024-09-02 08:51:19 407
原创 python 实现用蒙特卡洛方法计算圆周率PI算法
蒙特卡洛方法是一种基于随机数的数值计算方法,它通过大量随机试验来求解数学问题。在计算圆周率π时,一个经典的蒙特卡洛方法是利用单位正方形内切圆的面积比例。具体算法如下:算法步骤初始化:设置随机试验的总次数N(N越大,结果越精确)。初始化在圆内的点数计数inside_circle = 0。随机试验:对于每一个试验(从1到N):在区间[0, 1]内随机生成两个数x和y,代表单位正方形内的一个点(x, y)。检查点(x, y)是否位于单位圆内(即检查x^2 + y^2 <= 1是否成立)。
2024-09-02 08:48:47 731
原创 python 实现检查三个点在 3D 中是否共线算法
在三维空间中,判断三个点是否共线,本质上就是判断这三个点所构成的向量是否线性相关。如果三个点Ax1y1z1Bx2y2z2Ax1y1z1Bx2y2z2和Cx3y3z3Cx3y3z3共线,那么向量AB和向量AC应该是线性相关的,即存在一个非零实数k,使得ABk∗ACABk∗AC。向量AB的坐标为x2−x1y2−y1z2−z1x2。
2024-08-31 09:03:23 2203
原创 python 实现proth number普罗斯数算法
普罗斯数(Proth number)是指形如k⋅2n1k⋅2^n+1k⋅2n1的数,其中 k 是一个正整数,n 是一个非负整数,且 k 是奇数且k2nk<2^nk2n。普罗斯数在数论中有一些重要的性质,尤其是在质数检测方面。以下是一些关于普罗斯数算法的基本概念和实现方式:基本概念定义:普罗斯数定义为Nk⋅2n1N=k⋅2^n+1Nk⋅2n1,其中k 是奇数,n 是正整数,且2nk2^n>k2nk。
2024-08-31 08:51:22 1947
原创 python 实现pythagoras哥拉斯算法
您可能是在询问“Pythagorean Theorem”(毕达哥拉斯定理,也称为勾股定理)与“Euclid’s Algorithm”(欧几里得算法,也称为辗转相除法),但这两个概念实际上是独立的,它们之间没有直接的联系。不过,我会分别解释它们。毕达哥拉斯定理(Pythagorean Theorem)毕达哥拉斯定理是一个在直角三角形中,直角边的平方和等于斜边的平方的定理。如果直角三角形的两条直角边长度分别是a和b,斜边长度是c,那么a² + b² = c²。这个定理在几何学和三角学中有着广泛的应用。
2024-08-30 08:53:18 590
原创 python 实现radians弧度制算法
弧度制(Radians)是角度的一种量度方式,与常用的度(Degrees)制不同。在数学和物理学中,弧度制是更为自然和方便的角度单位,特别是在处理三角函数和圆的扇形部分时。弧度制的定义一个完整的圆的角度是360∘360^∘360∘或 2π 弧度。
2024-08-30 08:50:05 722
原创 python 实现使用 radix-2 快速傅里叶变换的快速多项式乘法算法
使用 radix-2 快速傅里叶变换(FFT)来实现快速多项式乘法是一种高效的算法,尤其在处理大规模数据时。其基本思想是利用 FFT 将两个多项式转换到点值表示,然后在点值表示下进行乘法操作,最后再通过逆 FFT(IFFT)转换回系数表示。步骤分解多项式转点值表示假设有两个多项式Axa0a1xa2x2⋯an−1xn−1Axa0a1xa2x2⋯an−1xn−1和Bxb0b1xb2x2⋯。
2024-08-29 09:21:33 982
原创 python 实现Sigmoid函数算法
Sigmoid函数(也称作逻辑斯蒂函数或S型函数)是一种在机器学习和深度学习中广泛使用的激活函数,主要用于二分类问题。它的输出范围在0和1之间,这使得它非常适合用于表示概率。σ′x11e−xσ′x1e−x1其中,x 是输入,e 是自然对数的底数(约等于2.71828),σ(x) 是Sigmoid函数的输出。Sigmoid函数的特点平滑性:Sigmoid函数是一个平滑的、可微的函数,这对于基于梯度的优化算法(如梯度下降)是非常重要的。
2024-08-29 09:00:22 390
原创 python 实现simpson rule辛普森法则算法
辛普森法则(Simpson’s rule)是一种数值积分方法,用于估计函数在给定区间上的定积分。该方法利用二次函数来逼近被积函数,从而得到更准确的积分估计。辛普森法则的算法通常将积分区间[a,b]划分成n个小区间(n为偶数),每个小区间的长度为h=(b−a)/n。然后,它使用三个点(区间开始、中间和结束)的函数值来近似每个小区间上的积分,并累加这些近似值以得到整个区间的积分近似值。
2024-08-29 08:38:33 387
原创 python 实现计算 sin 函数算法
计算正弦(sin)函数的算法有很多,从简单的近似方法到复杂的数学公式和算法。这里我将介绍几种常见的计算sin函数的方法:泰勒级数(Taylor Series)泰勒级数是一种用函数在某点的信息描述其附近取值的数学公式。sinxx−x33!x55!−x77!x35!x5−7!x7...这个级数在x接近0时非常准确,但随着x的增大,需要更多的项来保持精度。CORDIC算法。
2024-08-28 09:02:53 1240
原创 python 实现square root平方根算法
牛顿迭代法(Newton’s Method)牛顿迭代法是一种在实数域和复数域上近似求解方程的方法。对于平方根问题,我们可以将其转化为求解方程x2−a0x^2−a=0x2−a0的正根问题。xn1xn−fxnf′xnxn1xn−f′xnfxn二分查找法(Binary Search)如果只需要找到平方根的一个近似值,并且这个值不需要非常精确,可以使用二分查找法。假设我们要找 a 的平方根,其中 a≥0。库函数。
2024-08-28 08:55:25 738
原创 python 实现inverse matrix逆矩阵算法
逆矩阵(Inverse Matrix)是线性代数中的一个重要概念,指的是一个矩阵的逆元。如果一个矩阵A和一个矩阵B的乘积是单位矩阵,即AB = I 或 BA = I(I是单位矩阵),那么就说B是A的逆矩阵,记作A^(-1) = B。高斯-约旦消元法(Gauss-Jordan Elimination)高斯-约旦消元法是求解线性方程组的一种通用方法,也可以用来计算矩阵的逆。基本思路是通过行变换(和列变换)将原矩阵变为单位矩阵,同时用相同的变换作用于单位矩阵,最终得到的矩阵即为原矩阵的逆。
2024-08-27 08:51:48 855
原创 python 实现zellers congruence泽勒一致算法
Zeller’s Congruence(泽勒一致算法)是一种用于计算给定日期是星期几的算法。这个算法可以处理公历(Gregorian calendar)和儒略历(Julian calendar)日期。其核心公式如下:此算法在处理月份时,如果月份是1月或2月,则需要将月份视为前一年的13月或14月,同时年份减1。这样做是为了保持月份在3到14的范围内,便于计算1。
2024-08-27 08:49:23 406
原创 python 实现二维矩阵运算的函数算法
在二维矩阵运算中,除了之前提到的加法和乘法之外,还有其他一些常见的运算,如矩阵的转置、求逆(针对方阵且行列式不为零)、点积(也称为内积,但通常不直接用于整个矩阵,而是矩阵的列或行向量之间)等。不过,这里我将重点补充矩阵的转置和简要提及矩阵求逆(因为求逆通常涉及更复杂的算法,如高斯-约旦消元法或LU分解)。矩阵转置矩阵的转置是将矩阵的行变成列(或将列变成行)的过程。对于矩阵A,其转置表示为A^T或A’。矩阵求逆(简要提及)
2024-08-27 08:44:27 468
原创 python 实现 hidden layers neural network浅层神经网络算法
浅层神经网络(Shallow Neural Network),也称为单隐层神经网络(a single hidden layer neural network),是一种包含输入层、一个隐藏层和输出层的神经网络结构。下面我将详细介绍浅层神经网络算法的基本概念和计算过程。神经网络结构在浅层神经网络中,网络结构通常包括三层:输入层(Input Layer):接收输入数据,不进行任何计算,只是将输入数据传递给隐藏层。
2024-08-26 08:57:41 857
原创 python 实现convolution neural network卷积神经网络算法
卷积神经网络(Convolutional Neural Networks, CNN)是一种包含卷积计算且具有深度结构的前馈神经网络(Feedforward Neural Networks, FNN),是深度学习的代表算法之一。基本原理CNN的核心思想是通过模拟人类视觉系统的工作方式,自动提取图像中的特征,并将其用于分类、检测、分割等任务。它主要受到了生物学上感知机制的启发,模拟了人类视觉系统中的感知细胞和复杂细胞的工作方式。
2024-08-26 08:54:09 13310
RKDevTool_Release_v2.84.zip
2022-03-08
PL2303HXA USB转串口驱动 支持win10_64.zip
2019-10-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人