генерация перестановок с использованием Mathematica 4.0 - PullRequest
0 голосов
/ 30 января 2011

Привет, я использую Mathematica 4.0.Я пытаюсь найти все перестановки, например, скажем, есть два числа 0 и 1. Я пытаюсь сгенерировать все перестановки, используя эти два числа в 3 (скажем) местах с повторением, например, {1,1,1},{1,1,0}, {1,0,1}, {1,0,0} ... Также я пытаюсь поместить каждую перестановку в массив.Есть ли какой-либо код или команда в Mathematica 4.0, с помощью которой я могу делать все эти вещи.Пожалуйста, помогите мне в этой задаче ...

Ответы [ 3 ]

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

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

getTuples[elements_List, length_Integer] :=
  Flatten[Outer[List, Sequence @@ Table[elements, {length}]], length - 1]

Например:

In[6]:= getTuples[{0, 1}, 3]

Out[6]= {{0, 0, 0}, {0, 0, 1}, {0, 1, 0}, {0, 1, 1}, {1, 0, 0}, {1, 0, 1}, {1, 1, 0}, {1, 1, 1}}

Но я не знаю, работает ли это в M4.0.Стоит, наверное, но я не могу проверить.Как правило, вы сталкиваетесь с множеством различных трудностей, связанных с устаревшей версией, такой как 4.0, включая отсутствие функциональности, низкую производительность и интерфейс (интерфейс), некоторые ошибки, исправленные в более поздних версиях, несовместимость с кодом, написанным в более поздних версияхверсии и получение справки.Это особенно верно для Mathematica, учитывая огромные успехи во всех направлениях, введенных с 4.0.Поэтому, если вы планируете использовать его регулярно, я настоятельно рекомендую обновить его.

0 голосов
/ 30 января 2011

Просто в стороне - обратите внимание, что документация для всех предыдущих версий Mathematica свободно доступна онлайн на http://reference.wolfram.com/legacy - специально для версии 4, см. http://reference.wolfram.com/legacy/v4.

. Вы можете искать в документах v4.через Google:

сайт перестановок: reference.wolfram.com/legacy/v4

, который включает функцию перестановок v4 http://reference.wolfram.com/legacy/v4/RefGuide/Permutations.html, которая имеет примеры и несколько ссылок на другие частистарой книги Математики.

0 голосов
/ 30 января 2011

Вид археологического вопроса: D.Версия 4 довольно старая!

<<DiscreteMath`Combinatorica`

perm1[l_,n_]:=Union[KSubsets[Flatten[Table[l,{n}]],n]]  

In[70]:= perm1[{1,2,1},4]
Out[70]= {{1,1,1,1},{1,1,1,2},{1,1,2,1},{1,1,2,2},{1,2,1,1},
          {1,2,1,2},{1,2,2,1},{1,2,2,2},{2,1,1,1},{2,1,1,2},
          {2,1,2,1},{2,1,2,2},{2,2,1,1},{2,2,1,2},{2,2,2,1},{2,2,2,2}}  

In[73]:= perm1[{1,0},3]
Out[73]= {{0,0,0},{0,0,1},{0,1,0},{0,1,1},{1,0,0},{1,0,1},{1,1,0},{1,1,1}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...