Иллюстрированный самоучитель по Mathematica

         

Дискретные перестановки — Permutations


В подпакете Permutations определен ряд функций дискретных перестановок:

  • RandomPermutation [n] — случайные перестановки из n элементов;
  • Ordering [list] — дает перестановки в установленном списком list порядке;
  • ToCycles [perm] — дает циклическую декомпозицию для списка list;


  • FromCycles [ {cicl, cic2,...}] — возвращает перестановки из циклических декомпозиций cic1, cic2, ...;
  • PermutationQ [list] — возвращает True, если список list представляет перестановки, и False в ином случае.

Работа функций поясняется следующими примерами:

<<DiscreteMath`Permutations`

RandomPermutation[16]

{16, 12, 11, 5, 3, 4, 9, 14, 2, 8, 15, I, 13, 7, 10, 6}

ToCycles[%]

{{16, 6, 4, 5, 3, 11, 15, 10, 8, 14, 7, 9, 2, 12, 1}, {13}}

FromCycles[%]

{16, 12, 11, 5, 3, 4, 9, 14, 2, 8, 15, 1, 13, 7, 10, 6}

Ordering[%]

{12, 9, 5, 6, 4, 16, 14, 10, 7, 15, 3, 2, 13, 8, 11, 1}

Решение рекуррентных разностных уравнений — RSolve

Для решения рекуррентных разностных уравнений в подпакет RSolve введены следующие функции:

  • RSolve [eqn, a [n] , n] — решает рекуррентное уравнение для а [n];
  • RSolve [eqn, a, n] — решает рекуррентное уравнение для функции а;
  • RSolvet {eqnl, eqn2,...}, {al, a2,...},n] — решает систему рекуррентных уравнений, представленных списками.

Ниже представлены примеры применения данных функций:

<<DiscreteMath` RSolve`

RSolve[a[n+l] == 2 a[n], a[n], n]

{{a[n] -> 2nC[l]}}

RSolve[a[n] == a[n-l] + a[n-2], a[0] == a[l] == 1, a[n], n]

RSolve[ a[0] == a[l] == 2,

(n+1) (n+2) a[n+2]- 2 (n+1) a[n+l]- 3 a[n] == 0, a[n], n]

 



Содержание раздела