polynomials - 你能得到多项式中的幂的列表吗?帕里大奖赛
问题描述
我正在使用系数为 +1/-1(和零)的单变量多项式。这些可能很长,权力范围可能很大。我将权力视为一个向量会很方便 - 有什么方法可以快速做到这一点?我曾希望帕里已经有一个命令来执行此操作,但我似乎看不到一个?
只是一个例子来确认我正在尝试做什么......
输入:x^10 - x^8 + x^5 - x^2 + x + 1
期望的输出:[10, 8, 5, 2, 1, 0]
解决方案
您可以使用Vecrev
来获取多项式系数。之后,只需枚举它们以选择非零的从零开始的位置。您需要以下单线:
nonzeros(xs) = Vecrev([x[2]-1 | x <- select(x -> x[1] != 0, vector(#xs, i, [xs[i], i]))])
现在您可以轻松获得多项式幂的列表:
p = x^10 - x^8 + x^5 - x^2 + x + 1
nonzeros(Vecrev(p))
>> [10, 8, 5, 2, 1, 0]
推荐阅读
- node.js - 在 NodeJs 中上传和读取 excel 文件
- python - 按python中的另一个list.index对压缩列表进行排序
- javascript - 从 Firebase 获取用户个人资料信息时出现问题
- r - 拆分和重组数据帧时如何保留单个观察的行名?
- javascript - Angular - 无法获取父组件数据
- android - Nativescript,无法在设备上进行更改。错误是:无法读取 null 的属性“startsWith”
- javascript - 在与按钮相同的 div 块中获取跨度的内部文本
- reactjs - 如何在单个反应 js 组件中导出两个模块?
- c - C中的哈希宏定义
- python - 从 excel 创建 Python 字典