找回密码
 欢迎注册
查看: 32670|回复: 21

[讨论] 最接近平方数的阶乘数

[复制链接]
发表于 2019-11-1 21:59:37 | 显示全部楼层 |阅读模式

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

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

×
4!=24, 5^2=25, 5^2-4!=1
5!=120, 11^2=121, 11^2-5!=1
7!=5040,   71^2=5041, 71^2-7!=1
问,还有没有其他阶乘数,跟平方数差很小
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-11-1 22:08:39 | 显示全部楼层
目前找到的指标是阶乘的平方根的小数部分的值与1的差

\( MIN(1 - | \sqrt{n!} - [\sqrt{n!}]|,  | \sqrt{n!} - [\sqrt{n!}]|) \)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-11-1 22:58:25 | 显示全部楼层
目前得到的结果n!,n<=10000以内
n=
224
309
879
1099
1494
2221
3739
最接近平方数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-11-1 22:59:44 | 显示全部楼层
3739!的平方根小数部分前几位0.9999954
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-11-2 06:20:52 | 显示全部楼层
以前看过一道竞赛题\[n!+1=x^2\]的解答,记得只有这三个解。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-11-2 08:58:41 | 显示全部楼层
hujunhua 发表于 2019-11-2 06:20
以前看过一道竞赛题\[n!+1=x^2\]的解答,记得只有这三个解。


嗯,还可以找稍微接近平方数的

这些数,大概是
\( n! = x^2 + O(x), x \in \NN \)

点评

赞赞赞  发表于 2019-11-2 13:14
即最接近 n! 的平方数,与 n! 的差最大约为`\sqrt{n!}`  发表于 2019-11-2 13:09
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-11-2 11:27:18 来自手机 | 显示全部楼层
可以找出所有 n! 和平方数之差不超过 n 的数。

点评

别说不超过n,就是不超过100n也是没有其他数字的  发表于 2019-11-2 12:59
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-11-2 12:57:41 | 显示全部楼层
写了一个C/GMP的小程序,跑了几分钟,算出14万以内$n<=140000$, $n!$跟最接近的完全平方数的差的绝对值 小于$100n$ 的只有 $1!-11!$, 前11个数.


然后看到 老胡的评论,我立马终止了程序
即最接近 n! 的平方数,与 n! 的差最大约为`\sqrt{n!}`



  1. #include <gmp.h>
  2. #include <stdio.h>

  3. int main()
  4. {
  5.     mpz_t tmp, a, b;
  6.     mpz_init(tmp);
  7.     mpz_init(a);
  8.     mpz_init(b);
  9.    
  10.     int n = 200000;
  11.     mpz_fac_ui(tmp,n);
  12.     for (int i = n+1; i < 5*n; ++i) {
  13.         mpz_mul_ui(tmp,tmp, i);
  14.         int ans = mpz_root(a, tmp, 2);
  15.         mpz_add_ui(b, a, 1);
  16.         mpz_mul(a, a, a);
  17.         mpz_mul(b, b, b);
  18.         mpz_sub(a, tmp, a);
  19.         mpz_sub(b, b, tmp);
  20.         if (mpz_cmpabs_ui(a, 1000*i) < 0) {
  21.             gmp_fprintf(stderr,"%d! - %Zd\n", i, a);
  22.         }
  23.         if (mpz_cmpabs_ui(b, 1000*i) < 0) {
  24.             gmp_fprintf(stderr,"%d! + %Zd\n", i, b);
  25.         }
  26.         gmp_fprintf(stdout,"%d\t", i);

  27.     }
  28.     mpz_clears(tmp, a, b, '\0');

  29.     return 0;
  30. }

复制代码

点评

^_^,比较懒,跑了半天,没个结果出来着  发表于 2019-11-2 16:15
不应该停止的。我说的是上限,下限并不确定呀。  发表于 2019-11-2 13:25
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2019-11-2 13:42:16 | 显示全部楼层
记 `x=\lfloor\sqrt{n!}\rfloor`, 那么最接近 n! 的平方数是 `x^2` 和 `(x+1)^2`之一,
设 `x^2=n!-a,(x+1)^2=n!+b`,
则 `a+b=2x+1` → `\min(a,b)≤x<\sqrt{n!}`
所我在6#的评论应该肯定地说“最接近 n! 的平方数,与 n! 的差小于`\sqrt{n!}`”
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2019-11-2 16:58:17 | 显示全部楼层
后面的计算越来越难,主要是数字迅速变大,得分配更大的浮点数了
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-4-25 12:20 , Processed in 0.059548 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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