应导师要求,需要实现一个关于超长整数运算的演示。
需求提出:
1、理论上要能实现任意长度大小表示
2、完成四则运算、模、幂、进制转换功能
3、算法具有可扩展性
需求分解:
就完成本身演示的目的,其实使用已有的高级语言(java、C#等)就具备了现有的能力(bigint、largenum等)
但是基于个人算法能力和自我提高的角度还是自立更生的好,言归正转。
现将个人思考的过程与大家分享一下:
1、如何表示如何表示一个超长整数?
2、如何存储一个超长整数?(有看官可能会提出该问题和问题从编码角度是同一个问题,但是我这里不是从编码角度,所以需要分开考虑,至于不同点,请接着往下看吧)
3、采用什么样的机制(实现模式)来完成基本运算?
在完成以上3个问题的基础上还需要考虑后续问题
4、现有的实现方法和自己的实现差别在哪里?(主要考虑性能和资源消耗方面,其次是算法的可移植性以及通用可理解性)
5、有没有进一步提升运算效率的方法?(包括使用场景的变更和技术、硬件资源的充分利用)
6、在运算实现的基础上有没有现实需求的应用?
。。。
想到后来我发现我是不是自己想多了,送自己两个字:呵呵!
待续。。。