找回密码
 欢迎注册
查看: 20471|回复: 5

[讨论] 一道数论题

[复制链接]
发表于 2012-3-2 10:53:25 | 显示全部楼层 |阅读模式

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

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

×
我们知道如下等式
$3^2-2^3=1$
$3^3-5^2=2$
$2^8-5^3=3$
现在,我提出一个2问题,不知能否解决。

1.对于一个给定的小的正整数c,满足不定方程$a^m-b^n=c$且a>1,b>1,m>1,n>1,的整数解(a,b,m,n)是有限的。
2.如果能够证明1,可否有出求方程1的解的通过算法。


注:
1. 或许(1)中的方程不能叫做不定方程,因为其指数也是未知数。
2. 对于c=1,在a和b的素因子不超过某个数的情况下,其解是有限的,它是Stormer's theorem的一个特例,见http://en.wikipedia.org/wiki/St%C3%B8rmer%27s_theorem
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-3-2 14:46:18 | 显示全部楼层
这种数确实很少。

    我扫描了$2^50$以内的乘方数(若 $n=i ^ e$, (i,e是整数,且i>1,e>1)则称n是乘方数),检查相邻2个数之间的差,若<=16,则输出。结果为

c=[1]
        9-8=1   9=3^2   8=2^3

c=[2]
        27-25=2 27=3^3  25=5^2

c=[3]
        128-125=3       128=2^7 125=5^3

c=[4]
        8-4=4   8=2^3   4=2^2
        36-32=4 36=6^2  32=2^5
        125-121=4       125=5^3 121=11^2

c=[5]
        32-27=5 32=2^5  27=3^3

c=[7]
        16-9=7  16=2^4  9=3^2
        32768-32761=7   32768=2^15      32761=181^2

c=[8]
        97344-97336=8   97344=312^2     97336=46^3


c=[9]
        25-16=9 25=5^2  16=2^4
        225-216=9       225=15^2        216=6^3
        64009-64000=9   64009=253^2     64000=40^3


c=[10]
        2197-2187=10    2197=13^3       2187=3^7


c=[11]
        3136-3125=11    3136=56^2       3125=5^5
        3375-3364=11    3375=15^3       3364=58^2


c=[12]
        2209-2197=12    2209=47^2       2197=13^3


c=[13]
        49-36=13        49=7^2  36=6^2
        256-243=13      256=2^8 243=3^5
        4913-4900=13    4913=17^3       4900=70^2


c=[15]
        64-49=15        64=2^6  49=7^2
        1295044-1295029=15      1295044=1138^2  1295029=109^3


c=[16]
        144-128=16      144=12^2        128=2^7
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-3-2 23:09:42 | 显示全部楼层
对于比较小的$c$值,通常取$m/n~~ln(b)/ln(a)$
可以用连分数来逼近$m/n$的值,这样更容易搜到解
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-3-3 13:36:22 | 显示全部楼层
有道理
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-3-5 18:14:05 | 显示全部楼层
给出求渐进连分数的代码,方便自己和别人参考。
  1. #include "stdafx.h"
  2. #include "math.h"

  3. typedef int BASE_INT_TYPE;
  4. typedef __int64 DOUBLE_INT_TYPE;

  5. typedef struct _base_pair
  6. {
  7.         DOUBLE_INT_TYPE p;
  8.         DOUBLE_INT_TYPE q;
  9. }BASE_PAIR;

  10. typedef struct _base_pair_3e
  11. {
  12.         BASE_PAIR d[3];
  13. }BASE_PAIR_3E;

  14. void continued_frac_serial(double f)
  15. {
  16.         BASE_INT_TYPE a[2];
  17.         BASE_PAIR_3E pqs;
  18.         double cf,tf;
  19.         int i;
  20.        
  21.         tf=f;
  22.         pqs.d[0].p=a[0]=(BASE_INT_TYPE)(tf);
  23.         pqs.d[0].q=1;
  24.         cf=(double)(pqs.d[0].p)/(double)(pqs.d[0].q);
  25.         printf("\nf=%.16f\n[0]:%I64d/%I64d=%.16f\n",f,pqs.d[0].p,pqs.d[0].q,cf);

  26.         tf -= a[0];
  27.         tf=1.0/tf;
  28.         for (i=1;1;i++)
  29.         {
  30.                 a[1]= (BASE_INT_TYPE)(tf);
  31.                 tf -= a[1];
  32.                 tf=1.0/tf;
  33.                
  34.                 if (i==1)
  35.                 {
  36.                         pqs.d[1].p = pqs.d[0].p * a[1] +1;        //p1=a0 * a1+1
  37.                         pqs.d[1].q = a[1];                //q1=a1
  38.                         cf=(double)(pqs.d[1].p)/(double)(pqs.d[1].q);
  39.                 }
  40.                 else
  41.                 {
  42.                         pqs.d[2].p= pqs.d[1].p * a[1] +  pqs.d[0].p;  //p[n]= a[n] * p[n-1] + p[n-2];
  43.                         pqs.d[2].q= pqs.d[1].q * a[1] +  pqs.d[0].q;  //q[n]= a[n] * q[n-1] + q[n-2];
  44.                         cf=(double)(pqs.d[2].p)/(double)(pqs.d[2].q);
  45.                 }
  46.                
  47.                 printf("[%d]:%I64d/%I64d=%.16f\n",i,pqs.d[1].p,pqs.d[1].q,cf);
  48.                 if ( fabs(cf-f) < f * 2.3e-16)
  49.                 {
  50.                         break;
  51.                 }
  52.                
  53.                 a[0]=a[1];
  54.                 if (i>=2)
  55.                 {
  56.                         pqs.d[0].p=pqs.d[1].p;
  57.                         pqs.d[0].q=pqs.d[1].q;
  58.                         pqs.d[1].p=pqs.d[2].p;
  59.                         pqs.d[1].q=pqs.d[2].q;
  60.                 }
  61.         }
  62. }

  63. void test1()
  64. {
  65.         double f;
  66.         f=3.1415926535897932384626433832795;
  67.         continued_frac_serial(f);       
  68.         f=log(3.0)/log(2.0);         continued_frac_serial(f);
  69.         f=log(5.0)/log(2.0);         continued_frac_serial(f);
  70. }

  71. int _tmain(int argc, _TCHAR* argv[])
  72. {
  73.         test1();
  74.         return 0;
  75. }
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2017-1-23 15:37:03 | 显示全部楼层
https://en.wikipedia.org/wiki/Catalan%27s_conjecture
这好像是个没有解决的问题
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-5-23 21:29 , Processed in 0.045089 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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