如果我想计算表达式^
中出现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]
(与我的问题相关),但会严重惩罚{{1}的其他用法}和Power
。
答案 0 :(得分:6)
你会做Count[x,Power[-1,_], {0, Infinity}]
In[4]:= RandomInteger[{-1, 1}, 10]^RandomChoice[{x, y, z}, 10]
Out[4]= {(-1)^x, (-1)^x, 0^y, 0^z, (-1)^z, 1, 1, 1, (-1)^y, 0^x}
In[5]:= Count[%, (-1)^_, {0, Infinity}]
Out[5]= 4
答案 1 :(得分:4)
什么是
Count[expr, Power[-1, _], {0, Infinity}]
P.S。问题中的示例不正确。我想你可能意味着
Count[x, _Power, {0, Infinity}]
答案 2 :(得分:3)
可能
Count[x, Power[-1, _], Infinity]
Infinity
的级别规范包括所有级别1到无穷大Power[-1, _]
仅在基数为Power
-1
的实例