找回密码
 欢迎注册
查看: 37818|回复: 9

[讨论] 熟悉pell方程的进

[复制链接]
发表于 2011-3-20 16:32:19 | 显示全部楼层 |阅读模式

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

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

×
如果pell方程 x1^2 - d*y1^2=c 和其反形 x2^2 - d*y2^2= -c 同时有解,则对该关系式有怎样的结论或其它结果,记得在学校时,《数论妙趣》一书中有介绍,可惜现在手头没有这本书,懂得朋友讲讲。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-3-20 18:39:30 | 显示全部楼层
为什么不准我发言!!!!!!!!!!!!!!!!!!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-3-20 18:40:38 | 显示全部楼层
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-3-20 18:44:54 | 显示全部楼层
Dario Alpern's site Home Page http://www.alpertron.com.ar/QUAD.HTM 还有java的代码下载,可以自己看看
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-3-21 04:57:20 | 显示全部楼层
链接中没有直接给出我所要的内容,又没有可下载的英文书籍。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-3-29 13:34:32 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-4-7 08:00:42 | 显示全部楼层
找到如下四个关系式 y1^2 + y2^2=k*y x1^2 + x2^2=d*k*y 其中k=x1y2 - x2y1 x1y1 + x2y2=k*x x1y1 - x2y2=t*y 其中t=x1x2 - d*y1y2 x,y是负pell方程的基解。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2011-4-25 21:56:57 | 显示全部楼层
6# ysr 这种说法好像不正确吧,x^2 - ny^2=-1(n为偶数时无解。)我可以了给出很多反例如n=10,26,226
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2011-4-26 16:56:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2015-9-12 14:21:37 | 显示全部楼层
;;; 求解形如X^2-D*Y^2=1的pell方程的最小正整数解(D为非平方数)当D=9781时X为156位数 Y为154位数
(defun sr(a)
   (setq n (strlen a) i 1 lst nil)
   (while (<= i n)
        (setq lst (cons (atoi (substr a i 1)) lst))
        (setq i (+ 1 i))
   )
   (reverse lst)
)
(defun add (lst1 lst2)
  (setq k1 (length lst1))
  (setq k2 (length lst2))
  (if (> k1 k2)
          (repeat (- k1 k2)  (setq lst2 (cons 0 lst2)) )
          (repeat (- k2 k1)  (setq lst1 (cons 0 lst1)) )
   )
  (setq addlst (mapcar '(lambda (x y) (+ x y)) lst1 lst2 ))
  addlst
)
(defun lnum (lst n n0)
   (setq lst (mapcar '(lambda (x) (* x n))  lst))
   (setq zlst (reverse lst))
   (repeat n0 (setq zlst (cons 0 zlst) ) )
(reverse zlst)
)  
(defun xc(lst1 lst2)
   (setq n1 (length lst1))
   (setq n2 (length lst2))
   (setq j 1 fflst '(0))
   (if (> n1 n2)
          (while (<= j n2)
              (setq fflst (add (lnum lst1 (nth (- j 1) lst2) (- n2 j) ) fflst))
              (setq j (+ 1 j))
           )
          (while (<= j n1)
              (setq fflst (add (lnum lst2 (nth (- j 1) lst1) (- n1 j) ) fflst))
              (setq j (+ 1 j))
           )
    )
fflst
)
(defun jinw (blst)
    (while (not (apply 'and (mapcar '(lambda (x) (<= x 9)) blst )))
         (setq hlst (mapcar '(lambda (x) (rem x 10)) blst))
         (setq qlst (mapcar '(lambda (x) (/ x 10)) blst))
         (setq qlst (append qlst (list 0)))
         (setq blst (add hlst qlst))
    )
  blst
)
(defun cheng (str1 str2)
    (setq lst1 (sr str1))
    (setq lst2 (sr str2))
    (setq tenlst (jinw (xc lst1 lst2)))
    (setq str (apply 'strcat (mapcar '(lambda (x) (itoa x)) tenlst ) ) )
    (if (= (car tenlst) 0)
      (setq str (vl-string-left-trim "0" str))
    )
str
)
(defun sadd (str1 str2)
  (setq lst1 (sr str1))
  (setq lst2 (sr str2))
  (setq addlst (add lst1 lst2))
  (setq tenlst (jinw addlst))
  (setq str (apply 'strcat (mapcar '(lambda (x) (itoa x)) tenlst ) ) )
  (if (= (car tenlst) 0)
      (setq str (vl-string-left-trim "0" str))
   )
str
)

(defun lf (n)
    (setq flst nil)
    (defun hj (lst)
       (if (/= (setq k (gcd (gcd (car lst) (cadr lst)) (gcd (cadr lst) (caddr lst)))) 1)
          (setq lst (list (/ (car lst) k) (/ (cadr lst) k) (/ (caddr lst) k)))
      )
      lst
    )
   (defun qz (lst)
        (hj lst)
        (setq va (fix (/ (+ (car lst) (* (cadr lst) (sqrt n))) (caddr lst))) )
         va
    )
   (defun hx (lst)
         (setq j (qz lst))
         (setq flst (cons j flst))
         (setq lst (list
                (- (* j (caddr lst) (caddr lst)) (* (car lst) (caddr lst)) )
                (* (cadr lst) (caddr lst) )
                (- (* n (cadr lst) (cadr lst)) (* (- (car lst) (* j (caddr lst))) (- (car lst) (* j (caddr lst)))) )
               )
          )
         (setq lst (hj lst))
          lst
     )
   (setq i (fix (sqrt n)))
   (setq flst (cons i flst))
   (setq lst (list i 1 (- n (* i i))))
   (while (not (equal lst (list i 1 1)))
       (setq lst (hx lst))
   )
  (reverse flst)
)
(defun  ff (lst)
  (if (= (rem (length lst) 2) 1)  
       (setq lst (append lst (list (* 2 (car lst))) (cdr lst)))
  )
  lst     
)

(defun pell (lst)
   (setq pelst (list (car lst) "1"))
   (foreach e (cdr lst)
          (setq pelst (list   (sadd (cadr pelst) (cheng (car pelst) e) )   (car pelst)    )    )

  )
pelst

)
(defun c:pfun ()
   (setq n (getint "请输入非完全平方数D"))
   (if (= (fix (sqrt n)) (sqrt n))
     (alert "你输入的是完全平方数!请重新输入!")
     (progn
        (setq lst (mapcar 'itoa (reverse (ff (lf n)))))
        (pell lst)
      )
   )
)
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-10-5 15:22 , Processed in 0.029119 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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