Wolfram mathematica 数学中的计数表达式

Wolfram mathematica 数学中的计数表达式,wolfram-mathematica,Wolfram Mathematica,如果我想计算表达式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 问题的由来:我正在构建一个复杂函数,它允许某些表达式,比如

如果我想计算表达式
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

问题的由来:我正在构建一个
复杂函数
,它允许某些表达式,比如
Power[-1,anycomplexidexpressionhere]
Sqrt[5]
(与我的问题相关),但严重惩罚了
Power和
Sqrt的其他用法

Count[expr, Power[-1, _], {0, Infinity}]
问题中的例子是不正确的。我想你可能是说

Count[x, _Power, {0, Infinity}]
大概

Count[x, Power[-1, _], Infinity]
  • Infinity
    的级别规范包括所有级别1到Infinity
  • 当基数为
    -1

你可以做
计数[x,幂[-1,],{0,无穷大]

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

代码应该是
Count[x,_Power,{0,无穷大}]
。请注意,
Power
并不总是对应于表达式中的某个地方,例如
1/x
FullForm
中的
Power[x,-1]
。只是要知道,有一些像这样的怪癖,以防它与你的问题有关。有趣。在我发布之前,我尝试了
Count[(-1)^n+2^n,[u Power[-1,[u],[0,\[Infinity]}]
,它给出了0。这是因为
\u Power
匹配
Power[[uuuuuuuu]
,所以您的模式正在寻找
Power[[uuuuuuuuuu][1]
,但没有。您的模式将匹配
(a^b)[-1,n]
,它具有完整的
功能[a,b][-1,n]
。正确的模式应该是
Power[-1,.]
。感谢您的解释,这很有帮助。