找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1435|回复: 12

[原创] 大数相乘

[复制链接]

已领礼包: 1876个

财富等级: 堆金积玉

发表于 2014-11-23 18:48:52 | 显示全部楼层 |阅读模式

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

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

×
(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 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 c:dc()
  (setq a (getstring "请输入a="))
  (setq b (getstring "请输入b="))
  (setq lst1 (sr a))
  (setq lst2 (sr b))
  (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))
  )
  (princ (strcat a "*" b "=" str))
  (princ)
)


评分

参与人数 1D豆 +5 收起 理由
newer + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-11-23 19:02:06 来自手机 | 显示全部楼层
什么是大数相乘,顾名思义,就是两个超过计算机表示的高精度数相乘。 结果当然也是超出计算机表示的,我们知道,这种情况称之为溢出
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-11-23 19:03:30 来自手机 | 显示全部楼层
问题来了:多大的数才算大数,?

点评

备注:由于getstring函数,最高只能算256位*256位。  详情 回复 发表于 2014-11-23 19:40
32位机器,64位机器。  详情 回复 发表于 2014-11-23 19:16
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-23 19:16:31 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-11-23 19:03
问题来了:多大的数才算大数,?

32位机器,64位机器。

点评

分别是多少呢?lisp编组用得着考虑这个问题吗?是不是e后面的最大整数?  详情 回复 发表于 2014-11-23 19:31
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-11-23 19:31:40 来自手机 | 显示全部楼层
newer 发表于 2014-11-23 19:16
32位机器,64位机器。

分别是多少呢?lisp编组用得着考虑这个问题吗?是不是e后面的最大整数?

点评

32位机器,就表示能表示的整数最大是32位2进制位了,2的32次方。  详情 回复 发表于 2014-11-23 19:39
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-23 19:39:54 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-11-23 19:31
分别是多少呢?lisp编组用得着考虑这个问题吗?是不是e后面的最大整数?

32位机器,就表示能表示的整数最大是32位2进制位了,2的32次方。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1876个

财富等级: 堆金积玉

 楼主| 发表于 2014-11-23 19:40:16 | 显示全部楼层
/db_自贡黄明儒_ 发表于 2014-11-23 19:03
问题来了:多大的数才算大数,?

备注:由于getstring函数,最高只能算256位*256位。

点评

你要算什么东西,要这么大位  详情 回复 发表于 2014-11-23 19:48
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-23 19:48:59 | 显示全部楼层
aimisiyou 发表于 2014-11-23 19:40
备注:由于getstring函数,最高只能算256位*256位。

你要算什么东西,要这么大位{:soso_e113:}

点评

根据连分式方法,验算下pell方程的非平凡解。  详情 回复 发表于 2014-11-23 20:07
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1876个

财富等级: 堆金积玉

 楼主| 发表于 2014-11-23 20:07:05 | 显示全部楼层
newer 发表于 2014-11-23 19:48
你要算什么东西,要这么大位

根据连分式方法,验算下pell方程的非平凡解。

点评

感兴趣,能不能单独开个帖子,给大家介绍下连分式方法,和PELL方程?和具体的应用场合?  详情 回复 发表于 2014-11-23 20:16
白度了—下,说是傅立爷变换最快,楼主是用的这—方法吗?我都忘了,傅立爷是什么样子了,书中自有傅立爷?  详情 回复 发表于 2014-11-23 20:15
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-11-23 20:15:45 来自手机 | 显示全部楼层
aimisiyou 发表于 2014-11-23 20:07
根据连分式方法,验算下pell方程的非平凡解。

白度了—下,说是傅立爷变换最快,楼主是用的这—方法吗?我都忘了,傅立爷是什么样子了,书中自有傅立爷?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2014-11-23 20:16:34 | 显示全部楼层
aimisiyou 发表于 2014-11-23 20:07
根据连分式方法,验算下pell方程的非平凡解。

感兴趣,能不能单独开个帖子,给大家介绍下连分式方法,和PELL方程?和具体的应用场合?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 604个

财富等级: 财运亨通

发表于 2014-11-23 20:25:19 来自手机 | 显示全部楼层
从来不见颜如玉。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1876个

财富等级: 堆金积玉

 楼主| 发表于 2014-11-23 20:33:09 | 显示全部楼层
连分式求解pell方程的算法网上可以搜到很多,很详细的,我只不过把它写成lisp代码。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-24 16:25 , Processed in 0.238825 second(s), 63 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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