他们将x y看做一个参数d,进一步修改了算法,然后将两边都除以d求余数(数学中记作mod d)
这样问题就变成k除以d的余数是z³。
这样,只需寻找d和z的值,即可保证找到对应于k=3的x、y、z。
即便如此,搜索的数字空间也是无限大的。因此,他们通过使用数论中的“筛法”,极大地减少了d范围,将xyz的搜索范围降到10的15次方以内。
拆解任务两位安德鲁还开发了将搜索算法拆分成几十万个并行处理流的方法。
如果仅在一台计算机上运行该算法,则要花几百年的时间才能找到答案。而通过将工作分为几十万个较小的任务,就可以在个人电脑上运行,进一步加快搜索速度。
在2019年9月,研究人员通过Charity Engine实施了这项计划,借用普通用户的家用电脑资源,共同解决难题。
当时,全球加入Charity Engine分布式计算项目的计算机超过40万台。两位安德鲁将他们的算法部署在平台上。
(注:Charity Engine项目还帮助科学家解决了一个蛋白质折叠问题,发了一篇Science。)
最终,这项工作被分为大约40万个任务,每个任务需要一台计算机花费大约3个小时才能完成。
很快,全球各地的电脑返回的k=42的第一个整数解。
而仅仅两周后,他们已经发现,k=3的第3个整数解就找到了,他们还把这组解印在了T恤上。
至此,Mordell在68年前的问题终于得到解答。
那么问题又来了x³ y³ z³=3的第4组解是多少?
可能有生之年很难见到了,因为求下一组解需要的计算量是现在的1000万倍,需要4万亿台电脑才能算出,而且可能还不够。