这是我使用的Algorithm:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaH7I-HHNAB-HupvfkgkzBHFFwDATuyJmmKgObPSRthbEGxU-XNmKC7FcAQ9YITKA-4qqFL0IY8bKFm_WzZFfxopQMnqzf3JagQxv0lW_H_LkS_utiV09oSKSopqGpTPbZ8hPF45b4qhBw98Ixtw6Ce6rqABspaYRNeKdKSrvr1LHKlC5B8NPHxDNh-A/s1600/%E6%B1%82%E6%95%99%E6%8D%A2%E5%9F%BA%E7%A8%8B%E5%BA%8F.png)
我需要作一个换基程序,将一个10进制数L转换成一个M进制数(k_0,k_1,...,k_(n-2))。这里的L<M^(n-1)。
我写了一个小程序,能准确转换,但我总认为太繁琐,应该有更好的方法。有谁能给出更简洁的换基公式或换基程序。
一个简单的程序是先写出一个计算 B=A+1 的程序APlusOne(A, M),A和B是两个M进制的数。
然后作如下loop:
B is a vector: (B_0,B_1, ..., B_(n-2))
initialize B = (0,0,...,0)
for i=1 to L
B = APlusOne(B,M)
next i
但这个程序计算次数是L。比我前面的程序要慢。
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaH7I-HHNAB-HupvfkgkzBHFFwDATuyJmmKgObPSRthbEGxU-XNmKC7FcAQ9YITKA-4qqFL0IY8bKFm_WzZFfxopQMnqzf3JagQxv0lW_H_LkS_utiV09oSKSopqGpTPbZ8hPF45b4qhBw98Ixtw6Ce6rqABspaYRNeKdKSrvr1LHKlC5B8NPHxDNh-A/s1600/%E6%B1%82%E6%95%99%E6%8D%A2%E5%9F%BA%E7%A8%8B%E5%BA%8F.png)
我需要作一个换基程序,将一个10进制数L转换成一个M进制数(k_0,k_1,...,k_(n-2))。这里的L<M^(n-1)。
我写了一个小程序,能准确转换,但我总认为太繁琐,应该有更好的方法。有谁能给出更简洁的换基公式或换基程序。
一个简单的程序是先写出一个计算 B=A+1 的程序APlusOne(A, M),A和B是两个M进制的数。
然后作如下loop:
B is a vector: (B_0,B_1, ..., B_(n-2))
initialize B = (0,0,...,0)
for i=1 to L
B = APlusOne(B,M)
next i
但这个程序计算次数是L。比我前面的程序要慢。
锟斤拷锟洁辑时锟斤拷: 2023-05-20 00:30:22