【发布时间】:2011-07-01 17:10:44
【问题描述】:
如果我想计算^ 在表达式x 中出现的次数,这很简单:
Count[x, _Power, {0, Infinity}]
假设我只想计算 -1 提高到某个幂的实例。我该怎么做?
我试过了
Count[(-1)^n + 2^n, _Power[-1, _], {0, Infinity}]
甚至
Count[Plus[Power[-1, n], Power[2, n]], _Power[-1, _], {0, Infinity}]
但都给了 0。
问题的起源:我正在构建一个ComplexityFunction,它允许某些表达式,如Power[-1, anyComplicatedExpressionHere] 和Sqrt[5](与我的问题相关),但严重惩罚Power 和Sqrt 的其他用途。
【问题讨论】:
-
代码应该是
Count[x, _Power, {0, Infinity}]。 -
请注意,
Power并不总是对应于表达式中某处的^,例如1/x在FullForm中是Power[x,-1]。请注意,有一些这样的怪癖,以防它与您的问题相关。