You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Pari-gp中提取任意变量个数表达式常数项的内置函数查询

回答

目前Pari/GP没有原生的单参数内置函数可以直接返回任意输入(常数、一元/多元多项式、级数)的常数项,不过你可以用一行代码实现该功能,无需嵌套调用polcoef,也不需要自行编写递归逻辑:

Const(expr) = substvec(expr, variables(expr), vector(#variables(expr), i, 0));

测试效果与你预期完全一致:

Const(1+x+y+z)
%1 = 1

Const(Pi+x^2+p)
%2 = Pi

Const(1+z+z^2)
%3 = 1

Const(1+y+z)
%4 = 1

实现原理:

  • variables(expr)会自动提取表达式中包含的所有变量,按Pari/GP默认变量排序返回列表
  • substvec支持批量将变量列表中的元素对应替换为指定值,此处我们将所有变量统一替换为0,剩余的结果就是常数项
  • 如果输入本身为常数,variables(expr)会返回空列表,substvec不会执行任何替换操作,直接返回原输入值,完全匹配你的需求

如果你使用的是2.15及以上版本的Pari/GP,还可以用更简洁的写法,高版本subst已支持批量传入变量列表和统一替换值:

Const(expr) = subst(expr, variables(expr), 0);

内容的提问来源于stack exchange,提问作者Richard Diagram

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 18:48:05