我需要找到一种方法来使用 C-shell 完成以下任务(我不能使用不同的 shell):
有一个程序可以使用伽罗瓦域计算从较大的多项式中输出多项式因子。输出是一行,看起来像这样(不要注意数字的实际值;我随机选择它们,它们在数学上没有计算出来):
(0 1 4 6 7 8 11 12 13) = (0 1)^3 * (0 4 5) * (0 2 4 6)^4 * (0 2 3)^2
多项式数学的工作方式是,如果将一个因子提高到偶数,则该因子对于多项式的值是多余的。有点像乘以 1。我需要做的是提取多项式因子并消除多余的因子。
使用 sed,我已经能够将上述表达式更改为
(0 1) ^ 3 * (0 4 5) * (0 2 4 6) ^ 4 * (0 2 3) ^ 2
但我不确定如何进行。
我想将上面的内容输入到 C-shell 脚本中,然后进行以下数组分配:
Array A = (0 1)
Array B = (0 4 5)
我认为最好的方法是首先将多项式因子分成单独的行,如下所示:
(0 1) ^ 3
(0 4 5)
(0 2 4 6) ^ 4
(0 2 3) ^ 2
但我不确定如何做到这一点。
任何人都可以提供任何有用的帮助或提示吗?请注意,多项式因子的数量会发生变化,但我预计不会超过 8 个。指数值不重要;我只需要确定它们是偶数还是奇数。如果将它们分配给变量或数组,我可以轻松地做到这一点。单个因素的最大可能大小可能是括号内的大约 50 个个人数字。