Как выбрать степени x термально по результатам его мода 3 в Mathematica - PullRequest
1 голос
/ 22 января 2011

У меня есть многочлен от x, например,

x^4/s +  x^3 + x^2*s + x^3*s^2 + x

Что я хочу сделать, это:
на основе результата (экспонента x) mod 3,

   if it's 0, change the x^* to 1;  
   if it's 1, change the x^* to 2;  
   if it is 2, change x^* to 3. 

Итак, я хочу получить:

x ^ 4 => 2

x ^ 3 => 1

x ^ 2 => 3

x ^ 1 => 2

следовательно, для данного примера я получаю

2/s+1+3s+s^2+2

Как это сделать программно?Спасибо!

1 Ответ

1 голос
/ 22 января 2011

следующее:

(x^4/s + x^3 + x^2*s + x^3*s^2 + x) /. x^(a : _ : 1) :> (Mod[a, 3] + 1)

, кажется, делает это.

Редактировать: Отвечая на комментарий:

In[4]:= (x^4/s + x^3 + x^2*s + x^3*s^2 + x) /. 
    x^(a : _ : 1) :> (Mod[a, 3] /. {0 :> m, 1 :> n, 2 :> p})


Out[4]= m + n + n/s + p s + m s^2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...