Поскольку вы хотите считать x
неявной степенью 1, вы можете использовать это:
powerCount[x_Symbol][expr_] :=
Tr @ Reap[PowerExpand[expr] /. {x^n_ :> Sow[n], x :> Sow[1]}][[2,1]]
powerCount[x] /@
{
x^2f[x]g[x^3],
x^2g[x^4],
x^2g[x^2f[x^2]]
}
{6, 6, 6}
В качестве альтернативы, это может быть написано без Sow and Reap, если это облегчает чтение:
powerCount[x_Symbol][expr_] :=
Module[{t = 0}, PowerExpand[expr] /. {x^n_ :> (t += n), x :> t++}; t]
Любую форму можно сделать более краткой, используя исчезающие шаблоны, возможно, за счет ясности:
powerCount[x_Symbol][expr_] :=
Tr @ Reap[PowerExpand[expr] /. x^n_ | x :> Sow[1 n]][[2, 1]]