news 2026/5/2 15:54:59

关于雷劈数的一些研究

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
关于雷劈数的一些研究

一、雷劈数的定义

背景:有个数学家走在路上看见一个 3025 的路牌被劈成 30 和 25 了,他发现

(

30

+

25

)

2

=

3025

,因此称这种数为雷劈数。

比较小的雷劈数有

81

=

(

8

+

1

)

2

,

100

=

(

10

+

0

)

2

雷劈数的定义大概为:将数

N

的十进制表示从某处分成两半

a

b

b

可以包含前导

0

,但不能为空),那么

(

a

+

b

)

2

=

N

二、雷劈数的求法

因为

b

可以包含前导

0

,所以考虑直接枚举

b

的位数

n

。这个时候十进制拼接就可以表示为

10

n

a

+

b

于是我们的方程变成了这样:

(

a

+

b

)

2

=

10

n

a

+

b

展开移项:

a

2

+

2

a

b

+

b

2

10

n

a

b

=

0

a

2

+

(

2

b

10

n

)

a

+

b

2

b

=

0

这是一个关于

a

的二次方程,想要有整数解必须满足判别式

Δ

=

(

2

b

10

n

)

2

4

(

b

2

b

)

为完全平方数,设为

c

2

因此

4

b

2

4

10

n

b

+

10

2

n

4

b

2

+

4

b

=

c

2

,即

4

(

10

n

1

)

b

=

10

2

n

c

2

b

也要是整数,因此

10

2

n

c

2

需要是

4

(

10

n

1

)

的倍数。我们只需要找出符合这个条件的

c

即可。

首先显然

10

2

n

4

的倍数,因此

c

只要是偶数就可以满足

4

的条件,我们之后再带上这个偶数的条件。现在去掉

4

之后,我们就需要找出

c

2

10

2

n

1

(

mod

10

n

1

)

,因为

10

n

1

(

mod

10

n

1

)

首先

P

=

10

n

1

显然不是一个质数,我们先考虑将其质因数分解为

i

p

a

i

i

。如果我们对于所有的

p

a

i

i

求出它们的合法解,那么将所有的可能组合全都用 exCRT 合并起来就可以获得

P

的所有合法解。

现在问题变成求

c

2

1

(

mod

p

a

i

i

)

。注意这不是一般的二次剩余问题,因为我们寻找的数的平方是

1

显然的,这种情况下

c

只能为

1

p

a

i

i

1

,把

1

移到

c

2

处然后因式分解即可证明。

于是我们求出了所有合法的

c

。如果遇到了奇数跳过即可。

对于每一个

c

,其有唯一对应的两组对偶解:

b

=

10

2

n

c

2

4

(

10

n

1

)

,

a

=

10

n

±

c

2

b

容易发现满足上面条件的

c

所对应的

a

b

一定合法。

于是整个问题就解决了,回顾一遍整体的流程:

枚举

b

的位数

n

P

=

10

n

1

分解为

k

i

=

1

p

a

i

i

对于每一个

p

a

i

i

的两种选法,将它们任意组合,形成

2

k

种不同的解,每一种都用 exCRT 合并得到对应的

c

在合法的

c

中加上

P

+

1

,然后枚举所有的

c

判断是否是偶数;

对前几步得到的每一个偶数

c

都还原出对应的两组

a

,

b

最后将得到的所有

(

a

+

b

)

2

从小到大排序。

实现有点困难,因为我带着高精度写的所以写了 17KB,目前 15 秒能算出

10

50

以内所有雷劈数。代码就不给了(

upd: 拿 python 重写了一下,只有不到 2kb 而且 0.5 秒能算

10

60

,我回去加一下优化的高精度库应该还能加速,Code

实际上现在瓶颈在于质因数分解,在目前能够快速分解的范围内(对应到输入就是 65 位左右)基本都能一秒跑完了,所以可能也就这样了吧。其它的加速就又回归到了质因数分解而这并不是我想研究的部分,如果有人会更快速的分解

10

n

1

也可以在此基础上进行优化。

特别鸣谢:

liqingyang,刷视频的时候看到了这个问题;

Grammar__hbw,把倍数关系转化为了剩余问题;

zhouyuhang,提出了剩余问题的大体解决方案;

OEIS A102766,验证了程序的较小项的正确性;

我自己,写+调了一晚上的史山;

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 10:33:13

Boost 电路右半平面零点 (RHPZ) 的仿真与解析

. 右半平面零点 (RHPZ) 来源解析 Boost 电路的传递函数为: H ( s ) V g D ′ 2 D ′ 2 R − s L s 2 L C R s L R D ′ 2 该传递函数的零点位于 s D ′ 2 R L ,由于零点符号为正,因此属于右半平面零点。 为了…

作者头像 李华
网站建设 2026/5/1 6:45:38

C++内存管理相关面试题图解

用香蕉尝试制作了一些面试题图解,主要是跟C的内存管理有关,方便大家更好地理解这些概念和准备相关的面试。有些文字生成的不够准确,但是基本上还是能够认出来,见谅。

作者头像 李华
网站建设 2026/5/1 22:13:50

QT之简陋版网络调试助手

1. 开发流程 1.1 Qtcp服务器的关键步骤 • 工程建立,需要在.pro加入网络权限 • 创建一个基于 QTcpServer 的服务端涉及以下关键步骤: 1. 创建并初始化 QTcpServer 实例: • 实例化 QTcpServer 。 • 调用 listen 方法在特定端口监听传入的连…

作者头像 李华
网站建设 2026/4/18 22:11:51

【万字长文】深度思考RAG流水线:从零构建智能agent架构,小白必学,程序员必收藏的大模型应用指南!

简介 本文介绍了一种深度思考RAG流水线,通过agent驱动的架构解决复杂查询问题。系统将查询分解为多步骤计划,执行自适应检索策略,结合反思机制和自我评估循环,实现真正的多步推理。与传统线性RAG相比,该架构能处理多源…

作者头像 李华
网站建设 2026/4/27 14:09:39

从静态到动态:探索LLM和RAG在自动更新知识图谱中的协同效应

摘要 在AI应用中,知识图谱(KG)的实时更新至关重要,但现有KG如Wikidata和DBpedia往往手动维护或 infrequent 重建,导致信息过时。本文提出一种利用大语言模型(LLM)和检索增强生成(RA…

作者头像 李华
网站建设 2026/5/2 13:56:50

抓住2026年AI黄金窗口!普通人也能实现月薪翻倍的转型全指南!

深夜,一家互联网大厂的HR正为一份特殊的Offer绞尽脑汁——如何用有竞争力的薪酬,吸引一位顶尖院校的AI算法博士。与此同时,另一位非技术出身的运营专员,却通过熟练掌握AI工具,成功将自己主导的项目效率提升了300%&…

作者头像 李华