找回密码
 欢迎注册
楼主: gxqcn

[欣赏] 奇妙的平方数拆分组合(内含Pell方程链接)

[复制链接]
发表于 2008-11-5 14:25:31 | 显示全部楼层
Prelude> let base=[1..10000]
Prelude> let all = [(x, y, z) | x <- base, y <- base, z <- base,  z > 2 * x, x * x * x * 10
+ y * y * y == z * z * z]
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-5 14:31:12 | 显示全部楼层
呵呵,对k=1的情形,我们可以计算10的立方根,将每次得到的小数化为渐进分数,然后取分子和分母来做为z,x的值,看能不能碰上一个解。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-5 14:33:43 | 显示全部楼层
你如果有个好的计算连分数的算法
可以考虑这么做
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-5 14:46:32 | 显示全部楼层
k = 1的取决于下列方程
是否有整数解
$x^3 + y^3 + z^3 + w^3 = t^3$
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-5 17:23:20 | 显示全部楼层
5^3+7^3+9^3+10^3=13^3
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-5 17:28:30 | 显示全部楼层
10x^3 + y^3 = z^3
==>
(2x)^3 + x^3 + x^3 + y^3 = z^3
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-5 18:10:13 | 显示全部楼层
$10^kx^3+y^3=z^3$
如果x不是7的倍数,两边对7取余数,可以得到
$10^k=+-2(mod 7)$
所以$k=2,5(mod 6)$
也就是k=1时的解必须有7|x
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-5 19:29:41 | 显示全部楼层
立方
对7取余数
是否只有
0,1,6三个结果?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-5 20:26:45 | 显示全部楼层
#include <stdlib.h>
#include <stdio.h>
#include <math.h>

#define Max 10000

int isPower3(long long pow)
{
  long long i, j, t, k;
  double l1, l2;
  if (pow == 1) return 1;

  if ((pow % 2) == 0)
    if ((pow % 8) > 0) return 0;
  else
    return (isPower3(pow >> 3));

  if ((pow % 3) == 0)
    if ((pow % 27) > 0) return 0;
  else
    return (isPower3(pow / 27));

  if ((pow % 5) == 0)
    if ((pow % 125) > 0) return 0;
  else
    return (isPower3(pow / 125));

  if ((pow % 7) == 0)
    if ((pow % 343) > 0) return 0;
  else
    return (isPower3(pow / 343));

  l1 = log(pow) / 3 - 0.001;
  l2 = l1 + 0.001;

  i = floor(exp(l1) - 0.001);
  j = floor(exp(l2) + 0.001);

  for (t = i; t <= j; t ++)
  {
    k = t * t * t;
    if (k == pow) return 1;
    if (k > pow) return 0;
  }
  return 0;
}


void Test(void)
{
  long long i, j, t;
  for (i = 7; i <= 7 * Max; i += 7)
    for (j = 1; j <= Max; j ++)
    {
      t = 10 * i * i *i + j * j * j;
      if (isPower3(t))
        printf("Find: %qd %qd %qd \n", i, j, t);
    }
}

int main(void)
{
  long long p, t;
  if (isPower3(8)) printf("8 is Club.\n");
  if (isPower3(1000)) printf("1000 is Club.\n");
  if (isPower3(8 * 27)) printf("8 * 27 is Club.\n");
  if (isPower3(11 * 11 * 11)) printf("11 * 11 * 11 is Club.\n");
  if (isPower3(11 * 11 * 13)) printf("11 * 11 * 13 is Club.\n");
  if (isPower3(37 * 37 * 37)) printf("37 * 37 * 37 is Club.\n");
  
  t = 100000;
  p = t * (t + 1) * (t + 2);
  if (isPower3(p))
    printf("%qd * %qd * %qd is Club.\n", t, (t + 1), (t + 2));
  

  Test();
  return 0;
}

遍取10000内结果,并没发现解
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2008-11-19 11:06:16 | 显示全部楼层
原帖由 medie2005 于 2008-11-5 12:56 发表
现在,考虑立方情形。
即求解丢番图方程:
$x^{3}*10^{k}+y^{3}=z^3$   

现在我来考虑这个问题,目的是证明方程没有非0解。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-3-29 20:40 , Processed in 0.050527 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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