Re: how to find n in expression x^n using a pattern?
- To: mathgroup at smc.vnet.net
- Subject: [mg58466] Re: how to find n in expression x^n using a pattern?
- From: "Scout" <not at nothing.net>
- Date: Sun, 3 Jul 2005 03:57:23 -0400 (EDT)
- References: <da5iiq$1tc$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Hi Steve,
I think this can help you:
In[1]:= p = x^n (x^2+2) (x^3+4) ;
In[2]:= Exponent[p/.Power[x_,n_Integer]+__ ->1, x]
Out[2]= n
~Scout~
"steve" <nma124 at hotmail.com> ha scritto nel messaggio
news:da5iiq$1tc$1 at smc.vnet.net...
>I am learning patterns in Mathemtica, and I thought this will be easy.
>
> suppose you are given a factored expression, such as x^n(x^2+2)(x^3+4)
> where 'n' above can be any number, including zero (i.e. there is no
> (x) as a separate factor). I need to find 'n', which can be
> 0,1,2,3,..etc..
>
> i.e I need to find the power of the factor x by itself if it exist in
> the expression. not (x^n+anything), just (x^n) byitself.
>
> For example
>
> p= x (x^2+2) ---> here n=1
>
> I tried this
>
> p /. x^n_(any_) -> n
>
> This did not work since x^1 does not match pattern x^n_. I would have
> worked if I had x^2 (x^3+2) for example.
>
> I know that I need to use something like x^_:1 to make it match x,
> which
> is really x^1, but I do not know how to use it in a replacement rule,
> becuase
> when I write
>
> p /. (x^n_:1)(any_) -> n
>
> it is an error.
>
> If I write
>
> p /. (x^_:1)(any_) -> _
>
> I do not get back anything.
>
> Next I tried the Cases command, and again had no luck.
>
> The main problem is that Mathematica makes a difference between
> x, x^1, and x^2, etc... when it comes to matching with pattern x^n_
>
> any idea how to do this?
> thanks,
> steve
>