算法编程之中可能会用到的数学定理总结

本文总结了算法编程中常见的数学定理,包括贝祖定理、约瑟夫环、逐位相加、四平方和定理以及旋转矩阵和爬楼梯问题。通过实例解析这些定理,并给出相关算法解题思路。
摘要由CSDN通过智能技术生成

把平常遇到过的一些数学定理归类总结一下,建立一个学习库,加油!

贝祖定理

裴蜀定理(或贝祖定理)得名于法国数学家艾蒂安·裴蜀,说明了
对任何整数a、b和它们的最大公约数d,关于未知数x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。
它的一个重要推论是:a,b互质的充要条件是存在整数x,y使ax+by=1.

例题:水壶问题

约瑟夫环

约瑟夫问题是个著名的问题:N个人围成一圈,第一个人从1开始报数,报M的将被杀掉,下一个人接着从1开始报。如此反复,最后剩下一个,求最后的胜利者。

详情看约瑟夫环——公式法(递推公式)
解题题目:面试题62. 圆圈中最后剩下的数字

逐位相加

让我们逐位将数字加在一起。举一个例子,如果要计算 123 与 912 的和。我们顺次计算 3+2、2+1、1+9。任何时候,当加法的结果大于等于 10,我们要将进位的 1 加入下一位的计算中去,所以最终结果等于 1035。

变化
我们可以对以上的想法做一个小变化,让它实现起来更容易 —— 我们将整个加数加入数组表示的数的最低位。
继续之前的例子 123+912,我们把它表示成 [1,2,3+912]。然后,我们计算 3+912=9155 留在当前这一位,将 910/10=91以进位的形式加入下一位。

然后,我们再重复这个过程,计算 [1,2+91,5]。我们得到 933 留在当前位,将 90/10=9以进位的形式加入下一位。继而又得到 [1+9,3,5],重复这个过程之后,最终得到结果 [1,0,3,5]
LeetCode JAVA解题—989. 数组形式的整数加法

四平方和定理(Bachet 猜想)

1770 年,Joseph Louis Lagrange证明了一个定理,称为四平方和定理,也称为 Bachet 猜想,它指出每个自然数都可以表示为四个整数平方和:
p =

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值