Re: how to find n in expression x^n using a pattern?

*To*: mathgroup at smc.vnet.net*Subject*: [mg58457] Re: [mg58426] how to find n in expression x^n using a pattern?*From*: Bob Hanlon <hanlonr at cox.net>*Date*: Sun, 3 Jul 2005 03:57:09 -0400 (EDT)*Reply-to*: hanlonr at cox.net*Sender*: owner-wri-mathgroup at wolfram.com

p=x (x^2+2); Make the power Optional p/.x^Optional[n_](any_)->n 1 This is abbreviated as ( n_. ) p/.x^n_.(any_)->n 1 Bob Hanlon > > From: "steve" <nma124 at hotmail.com> To: mathgroup at smc.vnet.net > Date: 2005/07/02 Sat AM 04:06:25 EDT > Subject: [mg58457] [mg58426] how to find n in expression x^n using a pattern? > > 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 > >