3

我认为 Scheme 有一个内置类型 Bignum 用于处理任意大的数字,但是如果我想自己实现它,我该怎么做呢?

如果我没记错的话,它有以下语法:|n| = () 当 n=0 |n| = (r . |q|) 其中 n=qN+r, 0<=r

N = base
r = remainder
q = quotient

例如,当基数 N=16 时,|33| = (1 2) 其中 1 是余数,2 是商。

PS:使用 bignum 实现我怎么能去下一个数字(后继)和前一个数字(前任),这样successor |n| = |n+1|predecessor |n+1| = |n|

4

1 回答 1

6

你很幸运。这个问题很经典。Andre van Meulebrock 写了一系列关于 bignums(表示和相关算法)的优秀文章。文章包含可运行的 Scheme 代码,因此请尝试使用他的代码。

查看 MacTech 的档案:

http://www.mactech.com/articles/mactech/Vol.08/08.03/BigNums/index.html

于 2012-03-01T19:17:35.423 回答