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

如何用sed/awk编写脚本为非零系数添加对应x^幂次

用awk实现多项式格式化输出方案

刚好最近处理过类似的多项式格式化需求,用awk就能完美解决这个问题,给你看看具体实现:

实现脚本

{
    n = NF - 1  # 计算当前行的最高幂次
    expr = ""
    for (i=1; i<=NF; i++) {
        coeff = $i
        k = n - (i - 1)  # 当前项的幂次,从最高幂次递减
        if (coeff == 0) continue  # 跳过系数为0的项
        
        # 生成当前项的字符串
        term = coeff
        if (k > 0) {
            term = term "x"
            if (k > 1) term = term "^" k
        }
        
        # 拼接所有有效项,用+连接
        if (expr == "") {
            expr = term
        } else {
            expr = expr "+" term
        }
    }
    print expr  # 输出格式化后的多项式
}

使用方法

假设你的输入文件名为poly_input.txt,直接运行以下命令即可得到结果:

awk -f poly_format.awk poly_input.txt

比如输入:

23 12 0 33
3 4 19

输出就是:

23x^3+12x^2+33
3x^2+4x+19

脚本逻辑说明

  • 利用NF(当前行的字段数量)计算最高幂次:n = NF - 1,因为字段数比最高幂次多1(比如4个字段对应幂次3)
  • 循环遍历每个系数,计算对应项的幂次k,从最高幂次依次递减
  • 跳过系数为0的项,避免生成多余的无效项
  • 根据幂次动态生成项的格式:幂次>1时带^k,幂次=1时只带x,幂次=0时直接保留系数
  • 最后把所有有效项用+连接起来,输出最终的多项式字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:38:36