想来想去还是把名字改成平衡九进制好,
平衡三进制的名字已经在网上了,
也省的我再乱命名,
github上放了一份 ..https://github.com/jiyinyiyong/shuangsan0
进入正题,
平衡九进制数的图形展示是一个九宫格,
分别填入数字:
6 1 8
7 5 3
2 9 4
然后每一个格子可以扩展细分成新的九宫格,
最大的一层可以往外延伸,
这些直接从自然数推就可以了,
也可以参照wiki上面的平衡三进制,
总的说两者就是高维低维的对应,
再往上就平衡八十一进制了,偶数嘛,
实际的用处不多,
虽然用来指明方向非常直观,
但是现在没人用,我一个人说也不算,
符号计算法则跟自然数相似,
也就是后面的重点,
另外的只能到博客看了,要不看下面源码,
我对自己的源码没多少信心,
思路大概这样的,
首先最简单的加法乘法结果可以从平面当中读出来,
所以使用了列表索引,
然后加法和乘法都是将每一对符号相乘的结果分开保存再两个数组,
一个周期结束之后收集累加,
加法累加之后循环累加直到进位消失,
乘法就直接调用加法了,
减法就是取相反数然后执行加法,简单的,
除法最麻烦,
我最后的办法是暴力运算,
结果的每一位都选取9个数字尝试,
每位数乘以除数到的乘积,
然后通过共轭再次乘积对比得到离被除数最近的一个点,
然后确定数值然后累加到结果,
最后一步步得到结果,
所以乘法的次数相当多,速度慢,
相信没有别的好办法了在目前的认识水平,
然后那个loop_mark的数值可以增大,
会更精确,更慢..
文件是:同个目录的luo和shu两个模块.
源码如下,python 2.7.1 gcc4.5
luo.py
shu.py