找回密码
 欢迎注册
查看: 386|回复: 16

[讨论] 高次幂展开各数位求和

[复制链接]
发表于 2024-7-7 22:40:03 | 显示全部楼层 |阅读模式

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

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

×
1.整数m满足m^6展开之后各位数之和等于729,求最小的m?

目前计算得到的上限:

m=7574813008688994204, m^6 是一个114位数,各位数之和等于729

m=4472033080333397226, m^6 是一个112位数,各位数之和等于729


2.整数m满足m^10展开之后各位数之和等于1024,求最小的m?

目前计算得到的上限:

m=9531938816691493376, m^10 是一个190位数,各位数之和等于1024

m=92688227824002136, m^10 是一个170位数,各位数之和等于1024
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-7-8 07:35:24 | 显示全部楼层
题主的意思是已经有一组解但不知道是不是最小解?那么,这组解是怎么得到的?
这似乎更有意思。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-7-8 08:16:20 | 显示全部楼层
我只能建议你用穷举法!或者模1000,开六次方,得到

PowerModList[729, 1/6, 1000]

那么这个数m的后三位是,
{003, 247, 253, 497, 503, 747, 753, 997}
只有这八种可能,这样工作量就减少到8/1000=0.008。

这种是729的情况


点评

nyy
这个思路错误!  发表于 2024-7-8 08:23
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-7-8 08:20:33 | 显示全部楼层
假设m^6的各位都是9, 那么至少729/9=81个9
那么这个数是99999....9(81个9),
对这个数开六次方,得到
IntegerPart[(10^81 - 1)^(1/6)] + 1
得到
31622776601684
这个数有14位。从这个数开始穷举,
如果后三位不是{003, 247, 253, 497, 503, 747, 753, 997}
直接pass掉。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-7-8 08:29:11 | 显示全部楼层
nyy 发表于 2024-7-8 08:16
我只能建议你用穷举法!或者模1000,开六次方,得到

PowerModList[729, 1/6, 1000]

题目要求各个数字和是729,没说以729结尾。
瞎回帖不是一种美德。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-7-8 08:29:14 | 显示全部楼层
补充一下你的代码
  1. Plus @@ IntegerDigits[7574813008688994204^6]
复制代码


4472033080333397226
  1. Plus @@ IntegerDigits[4472033080333397226^6]
复制代码

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-7-8 08:32:24 | 显示全部楼层
  1. Clear["Global`*"];
  2. n=31622776601684;(*循环开始检索的这个数*)
  3. Do[If[Plus@@IntegerDigits[m^6]==729,Print[m]],{m,n,n+10^5}]
复制代码


穷举法代码,但是估计要找到比较困难!

点评

那是很困难。若这样穷举,每秒验证1000万个数字,算出4472033080333397226需要14180年  发表于 2024-7-8 11:38
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-7-8 09:05:02 | 显示全部楼层
本帖最后由 uk702 于 2024-7-8 10:29 编辑
uk702 发表于 2024-7-8 07:35
题主的意思是已经有一组解但不知道是不是最小解?那么,这组解是怎么得到的?
这似乎更有意思。 ...


关于这个“更有意思”的问题,我现在能想到的一个办法(蒙特卡罗方法?),开 N 台机,每台机又开 N 个进程,每个进程都执行如下的操作:

随机生成一个数字和为729的十进制数字串(先生成前 n-1 个数字,若这 n-1 个数字的和小于 729 则继续生成第 n 个数字,最后一个数字为 729 - 前面 n-1 个数字和),然后开 6 次方,看看是不是整数。

之后的事就完全交给运气了,在没有其它招的情况下,说不定这是效率(尤其是储存效率)最高的方法。

---

这个方法如果还有改进的空间的话,在指定总位长的话(比如说 90 位、100位),或许当验证前 n-1 位为 ab....x 时,ab....x... 到 ab....(x+1)... 之间无 6 次方数,则该字头串不再尝试。

如果这个改进方法还有继续改进的空间的话,在指定总位长的话(比如说 90 位、100位),或许是 当验证前 n-1 位为 ab....x 时,试图猜测第 n 位有可能是什么(哪些)数字(根据开 6 次方后的小数位该补多少才能够为整数,猜测第 n 位该是啥)

点评

@northwolves 是的,确实是效率一样极低。  发表于 2024-7-8 13:32
似乎可行,晚上试试先。计算量还是相当可观  发表于 2024-7-8 11:15
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-7-8 12:13:44 | 显示全部楼层
  1. Table[SelectFirst[3 Range[10^8], Total[IntegerDigits[#^6]] == 9 n &], {n, 2, 36}]
复制代码

{3, 6, 21, 12, 33, 75, 123, 96, 273, 354, 717, 1194,2136,4104,7974,11196,14136,27627,42162,85446,140502,159948,430818,447054,792783,1387617,2817006,3018897,5509527,8878617,18370974,36010977,62177676,72883254,134377098}

点评

b(81)=? 太大了!出不来!试试拿这些小数(这是你的)到OEIS, 那里高手如云, 会有好心人出手相助的。  发表于 2024-7-9 10:35
b(81)=?  发表于 2024-7-8 14:27
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-7-8 15:32:17 | 显示全部楼层
  1. Table[SelectFirst[3 Range[10^8], Total[IntegerDigits[#^9]] == 9 n &], {n, 3, 52}]
复制代码

{3, 6, 9, 15, 18, 36, 27, 96, 72, 159, 237, 381, 348, 693, 555, 1476, 2022, 2568, 2493, 4818, 4446, 7446, 12915, 17469, 31227, 41799, 59247, 96258, 125064, 211026, 232614, 305226, 436806,
706059, 765156, 1219551, 1350756, 3052353, 2089047, 2984517, 8906538, 13509534, 18618906, 23264568, 36667776, 44495439, 78075918, 105968319, 83240802, 211791549}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-7-24 13:22 , Processed in 0.069715 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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