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

R语言如何按指数降序排序多项式函数字符串

R环境多项式字符串按指数降序排序方案

不需要写特别繁琐的逐字符分割逻辑,用基础R的正则匹配+排序就能实现,核心流程只有3步:

  • 以+为分隔符,把完整多项式字符串拆成单个子项的向量
  • 用正则提取每个子项^{}包裹的指数数值,不含x的常数项统一标记指数为0
  • 按提取到的指数值做降序排列,把排序后的子项重新用+拼接成完整字符串

直接可用的实现函数如下,适配你给出的示例场景:

sort_poly <- function(poly_str) {
  # 拆分多项式为独立项
  terms <- unlist(strsplit(poly_str, "\\+"))
  # 正则提取每个项的指数
  exp_vals <- as.integer(
    ifelse(
      grepl("x\\^\\{", terms),
      gsub(".*x\\^\\{(\\d+)\\}.*", "\\1", terms),
      0L
    )
  )
  # 按指数降序重排后拼接
  paste(terms[order(exp_vals, decreasing = TRUE)], collapse = "+")
}

# 测试示例输入
poly_input <- "2x^{2}+6x^{5}+x^{4}+2"
sort_poly(poly_input)
# 运行返回结果:"6x^{5}+x^{4}+2x^{2}+2"

如果你的多项式包含负号项(例如6x^{5}-x^{3}+2x^{2}-5),只需要在拆分前先把字符串里的-替换为+-,拆分后过滤掉空字符串即可正常排序,不需要额外调整核心逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.01 16:01:17