Sah*_*bov 3 lisp scheme bignum racket
我认为Scheme有一个内置类型Bignum来处理任意大数字,但是如果我想自己实现它我该怎么做呢?
如果我没有弄错,它有以下语法:| n | 当n = 0 | n |时=()=(r.| q |)其中n = qN + r,0 <= r
N = base
r = remainder
q = quotient
Run Code Online (Sandbox Code Playgroud)
例如,当基数N = 16时,| 33 | =(1 2)其中1是余数,2是商.
PS:使用bignum实现我怎样才能转到下一个号码(后继号码)和前一个号码(前一个号码),这样successor |n| = |n+1|和predecessor |n+1| = |n|
你很幸运.这个问题很经典.Andre van Meulebrock撰写了一系列关于bignums(表示和相关算法)的优秀文章.该文章包含可运行的Scheme代码,因此请尝试使用他的代码.
浏览MacTech的档案:
http://www.mactech.com/articles/mactech/Vol.08/08.03/BigNums/index.html