找回密码
 欢迎注册
查看: 542|回复: 23

[擂台] 编译器有趣问题求解

[复制链接]
发表于 2025-11-26 10:20:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
知乎中一个关于编译器的讨论
里面提及用程序验证\(a^3+b^3=c^3\)的无非零解问题。
题目里面写了一个无限循环,只在找到解时返回false,然后在循环外面返回true.
由于编译器优化时判断出循环不会退出,内部只有返回false,所以直接优化为返回false.

问题是题目里面使用了unsigned long long 类型,这个数据类型只有64比特,而穷举的a,b,c范围为1到\(10^9\), 实际上它们的三次方都超越了unsigned long long表达范围,
所以实际上相当于模\(2^{64}\)的计算,所以是有解的,由于穷举顺序实际相当于c最里层循环,b齐次,由于容易看出\(a=1,b=2^{22},c=1\)是一个平凡解,那么
实际上程序在经过最多\(10^9\times (2^{22}-1)+1\)次迭代后就会退出,因为它实际上求解的方程为
\(a^3+b^3 \equiv c^3 \pmod {2^{64}}, 1\le a,b,c\le 10^9\)

现在的问题是
i)这个程序最多经过多少次迭代会退出?
ii) a=c这种类型的解实际上还是一种平凡解,如何找出一个非平凡解?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2025-11-26 10:40:36 | 显示全部楼层
这个涉及到 椭圆曲线在有限域内的解的情况

点评

补码其实也满足,如果只做加减乘法运算  发表于 2025-11-26 13:56
另外 补码规则 也不符合 模运算规则  发表于 2025-11-26 11:43
确实  发表于 2025-11-26 11:39
模\(2^{64}\)不是有限域,有可能可以看成p-adic域上问题  发表于 2025-11-26 10:52
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2025-11-26 13:57:07 | 显示全部楼层
999020913^3+727187086^3=999319833^3(mod 2^64)

计算机搜索出来的几个结果
998714809^3+782888350^3=999739681^3(mod 2^64)
998104097^3+1061144^3=999534113^3(mod 2^64)
997562065^3+340359114^3=998343817^3(mod 2^64)
997547911^3+314878034^3=997947871^3(mod 2^64)
997326989^3+528914170^3=998613573^3(mod 2^64)
997085541^3+29675326^3=998270477^3(mod 2^64)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2025-11-27 07:50:57 来自手机 | 显示全部楼层
还有一个问题是max(a,b,c)最小值多少?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2025-11-27 09:27:35 | 显示全部楼层
mathe 发表于 2025-11-27 07:50
还有一个问题是max(a,b,c)最小值多少?

$a=b=c=2^{22}$ ?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2025-11-27 09:52:18 | 显示全部楼层
本帖最后由 northwolves 于 2025-11-27 10:32 编辑

找到了一个小一点的解:

  1. {a,b,c}={29,35,12}*2^16;Mod[a^3+b^3-c^3,2^64]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2025-11-27 09:59:45 | 显示全部楼层
{2094080, 2100224, 49152}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2025-11-27 10:05:58 | 显示全部楼层
这个更好一点: {2096768, 2097536, 12288}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2025-11-27 10:33:02 | 显示全部楼层
{2097104, 2097200, 3072}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2025-11-27 10:50:30 | 显示全部楼层
直觉这个应该是最小的了:{2097146, 2097158, 768}

点评

暴力跑了一个多小时,你是对的  发表于 2025-12-1 11:33

评分

参与人数 2威望 +14 金币 +14 贡献 +14 经验 +14 鲜花 +14 收起 理由
l4m2 + 2 + 2 + 2 + 2 + 2 暴力跑了一个多小时,你是对的.
mathe + 12 + 12 + 12 + 12 + 12 全偶数的不错

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2025-12-20 08:11 , Processed in 0.053958 second(s), 20 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表