- 博客(137)
- 收藏
- 关注
原创 勾股数的性质和应用
能够作直角三角形三条边的边长的三个正整数,成为一组勾股数,勾股数也称商高数或毕达哥拉斯三元组。能被222整除的数称为偶数,反之则为奇数,既是奇数又是素数的数称为奇素数,既是偶数又是素数的数称为偶素数。偶素数只有一个222。
2025-05-28 16:22:07
1006
原创 多元一次不定方程
形如a1x1a2x2⋯anxnNa1x1a2x2⋯anxnN的方程称为多元一次不定方程,其中a1a2anN∈Zn≥2a1a2anN∈Zn≥2并且a1a2ana1a2an都不为零。我们研究的时候研究a1a2ana1a2an都大于零的情况,可以通过变量替换转换成这个形式,也方便我们写代码。
2025-05-27 20:42:10
559
原创 二元一次不定方程
不定方程是指具有多个未知数的方程组,其中未知数的个数比方程的数量多,或者方程本身无法唯一确定所有未知数的值。这类方程通常有无限多解,或者存在解的集合。常见的不定方程有线性不定方程和非线性不定方程。举个例子,线性不定方程可以是像这样的形式:ax+by=cax+by=cax+by=c其中a,b,ca,b,ca,b,c是已知常数,而xxx和yyy是未知数。这个方程本身可能有多个解,或者没有解,具体情况取决于a,b,ca,b,ca,b,c的值。一个经典的不定方程的例子是:x+y=10x+y=10x+y=10这是一个
2025-05-26 16:48:46
851
原创 函数[x]和{x}在数论中的应用
设x∈Rx∈R,定义x[x]x等于不超过xxx的最大整数,称函数x[x]x为取整函数或高斯函数。另外也称x[x]x为xxx的整数部分xx−xxx−x为xxx的小数部分。
2025-05-25 20:08:39
694
原创 动态规划dp
题意:(最长括号匹配)给一个只包含‘(’,‘)’,‘[’,‘]’的非空字符串,“()”和“[]”是匹配的,寻找字符串中最长的括号匹配的子串,若有两串长度相同,输出靠前的一串。,因为字符串中的每个字符不会对后面的结果产生影响,所以 DP 方程可以优化成一维的, 由于字符串中有重复的字符,所以比较时应该从后往前。物品选不选,可以选的话,去下一组选下一个,否则在这组继续寻找可以选的物品,当这组遍历完后,去下一组寻找。表示寻找的字符串的第几个字符,当字符串中的字符和文章中的字符相同时,即找到符合条件的字符,
2025-05-24 21:35:02
806
原创 质数和算术基本定理
设ppp是一个大于111的整数,若它的正因数只有111和它本身,则称ppp是一个质数(或者素数),否则称为合数。这里要说明的是111既不是素数也不是合数。见下面的注解1。形如Fm22m1m012Fm22m1m012的数称为费马数。可以知道F0F1F2F3F4F0F1F2F3F4都是素数,但是后来欧拉发现了F522514294967296641×6700417。
2025-05-22 16:10:53
794
原创 整除的进一步性质与最小公倍数
若eee是所有a1a2ana1a2an的倍数,则称eee为a1a2ana1a2an的公倍数,在所有公倍数中的最小正数叫做a1a2ana1a2an的最小公倍数,记为a1a2ana1a2an或者lcma1a2anlcma1a2an。设n∈Za0a1a2an∈R或某一数域。
2025-05-21 18:46:33
807
原创 最大公因数和辗转相除法
计算下列各组数的最大公因数上面这个是求aaa和bbb的最大公因数的c语言递归代码我们根据这个代码来模拟一下111剩余两个问是类似的,这里就不解了。先给出因数的定义:如果整数aaa除以整数b(b≠0)b(b\ne 0)b(b=0)所得的商是整数且余数为0,那么我们就称bbb是aaa的因数(或约数)。设整数 a1,a2,…,ana_1, a_2, \dots, a_na1,a2,…,an 是 n(n≥2)n(n \ge 2)n(n≥2) 个整数, 如果整数 ddd 是它们中每一个的因数, 则称 dd
2025-05-21 13:04:18
836
原创 整数的定义和带余除法
设ab∈Zab∈Z, 且b≠0b \ne 0b0。若存在q∈Zq∈Z, 有aqba = qbaqb, 则称bbb是aaa的因数 (或约数), 或aaa是bbb的倍数, 或bbb能整除aaa, 或aaa能被bbb整除, 记作b∣ab \mid ab∣a。若对任意的q∈Zq∈Z, 有a≠qba \ne qbaqb, 则称aaa不能被bbb整除, 记作b∤a。
2025-05-18 14:15:15
617
原创 欧拉计划 Project Euler 73(分数有范围计数)题解
这个题按照范围来说是可以暴力解决的,还有莫反也可以解决,这涉及到Farey序列,也可以用Stern-Brocot树解决。这里给出暴力的解法。且其最大公约数为1,则称该分数为最简真分数。的最简真分数构成的集合中排序后,在。
2025-05-15 17:02:06
771
原创 欧拉计划 Project Euler 72(分数计数)题解
是欧拉函数,欧拉函数前面几个题已经详细介绍过了。且其最大公约数为1,则称该分数为最简真分数。的最简真分数构成的集合中共有多少个元素?可以看出该集合中有21个元素。我们可以使用欧拉筛预处理所有的。,最简真分数的个数是。因此要求的元素个数为。
2025-05-14 13:11:27
784
原创 欧拉计划 Project Euler 71(有序分数)题解
很显然这是不能暴力构造的,因为数据太过庞大了。且其最大公约数为1,则称该分数为最简真分数。的最简真分数按大小升序排列,求此时。是否互质,维护目前最大的。直接左邻的分数的分子。
2025-05-13 16:08:49
777
原创 欧拉计划 Project Euler 70(欧拉总计函数与重排)题解
尽可能的小, 意味着选择较小的素数乘积。互质的正整数的数量记为欧拉总计函数。在上一题69题中,我们分析得到了。是n的一个重排,求这些取值中使。尽可能的小,应该尽可能的选择。和任意正整数互质,所以。
2025-05-12 14:09:41
680
原创 欧拉计划 Project Euler 69(欧拉总计函数与最大值)题解
的数,如果包含更大的素因数或者素因数的幂次(这不会改变。其实根据上诉的思路不需要code了,但是还是给一下把。最大化,我们需要让这个乘积最大化,注意到每一项。为最小的若干连续素数的乘积,并且这个乘积不超过。只依赖于不同的素因数),或者包含的因数更少,其。这种数被称为素连乘数(primorial)。可以用筛法先筛选一些素数,当然也可以直接打表。,我们需要理解欧拉函数的性质以及表达式。互质的正整数的数量记为欧拉总计函数。让我们来计算一下这些素连乘数。且与n互质的正整数的个数。所以我们能取到的最大的数是。
2025-05-10 16:43:32
931
原创 欧拉计划 Project Euler 68(魔力五边形环)题解
为了获得最大的 16 位数字串,10 必须是外侧节点之一。为了使起始数字(最小外侧节点)最大,外侧节点集合必须包含尽可能大的数字,同时包含 10。最大的这种集合是 {6, 7, 8, 9, 10},此时最小外侧节点为 6,内侧节点为 {1, 2, 3, 4, 5},每条线总和为 14。在此基础上,从外侧节点 6 开始,通过贪婪选择后续数字,可以构建出最大的 16 位数字串。在如下的“魔力”五边形环中,在其中填入1至10这10个数,根据不同的填写方式,可以组成16位或17位数字串。
2025-05-08 15:08:06
814
原创 欧拉计划 Project Euler66(丢番图方程)题解
而对于非平方数的正整数D,佩尔方程总存在无穷多组正整数解。有了上面的结论,代码就很好写了,和之前的连分数代码差不多,具体细节看代码实现。鉴于数据量比较大,数据很容易溢出,这里用的python。的连分数展开是无限且最终是周期性的。是完全平方数时,这个方程没有正整数解。所以其他的解都可以由基本解生成。),连分数展开的周期就开始了,周期长度。是平方数时,这个方程不存在正整数解。找到佩尔方程基本解的标准方法是利用。是完全平方数时,方程变为。对于一个非平方数的正整数。是指周期部分的长度,且。
2025-05-07 15:11:48
892
原创 欧拉计划 Project Euler65(e的有理逼近)题解
有了以上思路后不难写出代码,如果使用c++编程要记得模拟大数加法和乘法,不然会溢出,使用python则不需要。可以证明,截取算术平方根连分数表示的一部分所组成的序列,给出了一系列最佳有理逼近值。初始条件为(因为从0开始算,所以这边有负数但实际编程的时候是不需要的)2的算术平方根可以写成无限连分数的形式。的第100个逼近值的分子各位数字之和。最令人惊讶的莫过于重要的数学常数。个逼近值的分子各位数字之和为。我们可以带几个值进去验证一下。可以通过以下递推式进行计算。这个无限连分数可以简记为。
2025-05-06 21:15:10
920
原创 欧拉计划 Project Euler64(奇周期平方根)题解
不是完全平方数的情况,因为完全平方数的平方根是整数(有理数),其连分数表示是有限的,没有周期。的连分数表示的周期长度是奇数。可以看出序列正在重复。中,有多少个连分数表示的周期是奇数?个连分数表示的周期是奇数。的范围内,有多少个整数。
2025-05-03 17:20:28
867
原创 欧拉计划 Project Euler63(幂次与位数)题解
注意这个是十进制下的,如果一个正整数。,使得它的十进制位数恰好等于。,位数可以通过对数来判断。范围内检查是否满足条件。
2025-05-02 12:10:14
857
原创 欧拉计划 Project Euler62(立方数重排)题解
41063625的标准形式是 ‘01234566’。然后我们维护一个字典 dict[标准形式] = [a^3 值列表],每次生成一个立方数 将其标准形式作为键,加入到对应列表中。当某个标准形式对应的立方数个数正好为 5 时,记录它们中最小的那个作为候选答案。将一个立方数的数字排序(如升序),得到一个标准形式。
2025-05-01 13:40:54
193
原创 欧拉计划 Project Euler58(螺旋素数)题解
直接暴力即可,从1开始,每次边长增加2,如何算四个角,然后统计判断即可,具体实现看代码。
2025-04-27 12:13:55
289
原创 欧拉计划 Project Euler54(扑克手牌)题解
这个题是个大模拟题,注意细节不要漏掉A5顺子,A可以当1使用,具体实现看代码,给了大量注释。牌面从小到大的顺序为:2、3、4、5、6、7、8、9、10、J、Q、K、A。
2025-04-23 13:31:48
741
原创 欧拉计划 Project Euler53(组合选择)题解
两个for循环暴力求解即可,注意溢出问题的处理,具体看代码。,有多少个不同形式的组合数。
2025-04-22 16:24:25
650
原创 欧拉计划 Project Euler 51(素数数字替换) 题解
将五位数 56**3 的第三和第四位数字替换为相同的任意数字,在十个可能值中有七个是素数,这也是同类例子中最小的一个。这些素数分别是:56003、56113、56333、56443、56663、56773 和 56993。56003 作为其中最小的数,也就是最小的满足这个性质的素数。将两位数 *3 的第一位数字替换为任意数字,在九个可能值中有六个是素数:13、23、43、53、73 和 83。通过将部分数字(不一定相同的)替换为相同的任意数字,有时能够得到八个素数,求满足这一性质的最小素数。
2025-01-15 12:14:50
195
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人