Re: Replace each f in f^n to different variables

*To*: mathgroup at smc.vnet.net*Subject*: [mg126034] Re: Replace each f in f^n to different variables*From*: Ray Koopman <koopman at sfu.ca>*Date*: Fri, 13 Apr 2012 04:52:39 -0400 (EDT)*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com*References*: <jm64ff$6kn$1@smc.vnet.net>

On Apr 12, 1:41 am, Yi Wang <tririverwan... at gmail.com> wrote: > Hi, all, > > I want to replace *each* f in f^n to a different variable, say > > f^n -> var1 * var2 * ... * varn > > Naively, if I try > > f^n /. f:>Unique[], > > Mathematica simply returns (a unique variable)^n, instead of the above behaviour. > > Is there a simple way to get the f's into different variables? > > Thanks! > Yi > > PS: > > (1) I know there are ways to transform Power to a list by hand, and then do something in it. For example, > > Times[((f^3)[[1]]*Table[1, {(f^3)[[2]]}]) /. f :> Unique[]] > > However, eventually I will be dealing with a large expression, with all kinds of terms, instead of a single term. This method quickly becomes very complicated. > > (2) I want to do such "strange" things, because a product of functions in position space f(x)^n becomes F(k1)F(k2)...F(k_{n-1})F(-k1-k2...) in momentum space. r := _^n_Integer?Positive :> Times@@Table[Unique[],{n}] f^3 /. r $1 $2 $3