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,.]
。感谢您的解释,这很有帮助。