计算机能够做的事不是计算,也不是匹配,而是并且只是01的变换操作;即使是机械计算机,如果它的结构是如我所想的话,它能够做的事也是如此:加1(减1)和停留。所以知道计算机能够进行符号计算不应感到诧异,就像数值计算一样稀松平常。
突然之间很想实现一下简单的符号计算,虽然还没看过CAS方面的书,但我想对于一些简单的多项式的计算,实现应该不会太麻烦。基本的想法还是原来那个在学c的时候跟同学讨论过的那样,把多项式看成字符串,然后分解出系数,建立系数数组,然后就可以进行与字母无关的计算,最后再把结果多项式写出。
还未想过字母系数和多字母多项式。。。高精度整数运算对于阶数不高系数也不大的多项式会不会也是关键呢?
blueprint:
第一步,多项式读入:最后还是决定以空格来区分单项式,这样2x和x2都是变量,而2 x才是表达2×x的意思(这里特意使用字母x和乘号×)。这样虽然实际上是将空格与乘号等同,但书写更符合习惯;虽然略去了很多其他写法,但其实很少有人会使用不规范的多项式写法。可以使用*号,而若想要使用传统乘号,估计就要考虑文本界面了。
第二步,多项式整理,升幂排列: 虽然降幂更符合习惯,但是升幂更方便建立数组。当然在输出时可以设置排列方式,默认还是以降幂输出以符合习惯。不出现乘号(目前无法出现)和*号, 以空格分别单项式和加减运算符。
第三步,两个多项式相乘:是否要考虑多个多项式整体运算呢?还是考虑成两个多项式相乘的迭代?前者要建立大矩阵,后者效率可能不高。
第四步,结果输出。
这样一个蓝图,不知有多少特殊情况没有考虑到。。。先做个吧,什么时候。
最新评论
24 周 6 天 前
35 周 1 天 前
35 周 1 天 前
35 周 1 天 前
36 周 40 分钟 前
36 周 51 分钟 前
36 周 14 小时 前
36 周 14 小时 前
36 周 1 天 前
36 周 1 天 前