В основном используя Mathematica (v.7), я хочу привести выражение вроде этого
(x + x^2 + x^3)^4
до
x^4 (1 + x + x^2)^4
Что было бы лучшим способом вывести термин, подобный GCD, из выражения, возводимого в степень и имеющего факторизованную форму; затем поместите этот термин за скобки и сохраните значение экспоненты, до которого он был повышен. Нужно знать, что ценность повышается до силы, прежде чем ее убрать. Вот моя попытка.
In[28]:= example = (x + x^2 + x^3)^4
Out[28]= (x + x^2 + x^3)^4
In[37]:= gcdVar = PolynomialGCD[Sequence @@ Level[example, {2}]]
Out[37]= x
In[40]:= step1 = Map[Divide[#, gcdVar] &, example, {2}]
Out[40]= (1 + x + x^2)^4
In[55]:= step2 = Times[step1, Power[gcdVar, Last[Level[example, {1}]]]]
Out[55]= x^4 (1 + x + x^2)^4
Я смотрел на все различные функции, связанные с этой областью, как; Собирать, Фактор, Развернуть, Упростить, Решить. Я не думаю, что кто-либо из них может произвести вывод, который я хотел.
Существует ли встроенный, более эффективный, масштабируемый и более короткий способ сделать это, возможно, с помощью сопоставления шаблонов и форм?