Javascript must be enabled in your browser to use this page.
Please enable Javascript under your Tools menu in your browser.
Once javascript is enabled Click here to go back to �нтеллектуальная Кобринщина

Use a Rule with an Expression More Than Once - Wolfram Mathematica

Многократное применение правила к выражению

Возможно, окажется полезным использовать одно или более правил к выражению несколько раз. Mathematica содержит функции, которые позволяют Вам повторять применение правил к выражению несколько раз. В случаях, когда правило может быть применено к выражению различными способами, Mathematica покажет Вам все возможные результаты.

В то время как /. (краткая форма записи функции ReplaceAll) применяет правило к выражению только один раз, возможно Вы сочтете полезным многократно применить правило к выражению, пока последнее не перестанет изменяться. Это можно сделать при помощи //. (краткая форма записи для функции ReplaceRepeated).

Используем /. для того, чтобы применить правило, или список правил, к каждой части выражения лишь один раз:

In[137]:=

UseARuleWithAnExpressionMoreThanOnceRU_1.gif

Out[137]=

UseARuleWithAnExpressionMoreThanOnceRU_2.gif

Используем //. для того, чтобы применить правила многократно, до тех пор, пока выражение более не изменяется:

In[138]:=

UseARuleWithAnExpressionMoreThanOnceRU_3.gif

Out[138]=

UseARuleWithAnExpressionMoreThanOnceRU_4.gif

Аналогичным образом:

In[139]:=

UseARuleWithAnExpressionMoreThanOnceRU_5.gif

Out[139]=

UseARuleWithAnExpressionMoreThanOnceRU_6.gif

In[140]:=

UseARuleWithAnExpressionMoreThanOnceRU_7.gif

Out[140]=

UseARuleWithAnExpressionMoreThanOnceRU_8.gif

Следует соблюдать осторожность при использовании //. совместно с циклическими правилами. Воспользуйтесь опцией MaxIterations для того, чтобы зад ать максимальное количество повторов для //.:

In[64]:=

UseARuleWithAnExpressionMoreThanOnceRU_9.gif

UseARuleWithAnExpressionMoreThanOnceRU_10.gif

Out[64]=

UseARuleWithAnExpressionMoreThanOnceRU_11.gif

Вы можете использовать функцию ReplaceList для того, чтобы преобразовать выражение при помощи правила, или списка правил, всеми возможными способами. Пр именение опции Column позволяет отобразить результаты в столбец для более удобного просмотра:

In[143]:=

UseARuleWithAnExpressionMoreThanOnceRU_12.gif

Out[143]=

log[a]+log[b c]
log[b]+log[a c]
log[a b]+log[c]
log[a b]+log[c]
log[b]+log[a c]
log[a]+log[b c]