Привет, я использую Mathematica 4.0. Я пытаюсь найти все перестановки, например, скажем, есть два числа 0 и 1. Я пытаюсь сгенерировать все перестановки, используя эти два числа в 3 (скажем) местах с повторением, например {1,1,1}, {1,1,0},{1,0,1},{1,0,0}... Также я пытаюсь поместить каждую перестановку в массив. Есть ли какой-нибудь код или команда в Mathematica 4.0, с помощью которой я могу делать все это. Помогите пожалуйста с этой задачей...
генерация перестановок с помощью mathematica 4.0
Ответы (3)
В 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, вы столкнетесь с массой разного рода сложностей, в том числе с отсутствием функциональности, низкой производительностью и интерфейсом (front-end), некоторыми ошибками, которые были исправлены в более поздних версиях, несовместимостью с кодом, написанным в более поздних версиях. версии и получить помощь. Это особенно верно для Mathematica, учитывая огромный прогресс во всех направлениях, появившихся после версии 4.0. Так что, если вы планируете использовать его регулярно, я настоятельно рекомендую обновить его.
Вид археологического вопроса :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}}
Кстати, обратите внимание, что документация для всех предыдущих версий Mathematica находится в свободном доступе в Интернете по адресу http://reference.wolfram.com/legacy — специально для версии 4 см. http://reference.wolfram.com/legacy/v4.
Вы можете искать документы v4 через Google:
сайт перестановок:reference.wolfram.com/legacy/v4
который включает функцию v4 Permutations http://reference.wolfram.com/legacy/v4/RefGuide/Permutations.html с примерами и несколькими ссылками на другие части старой книги Mathematica.
Permutations[{1,0},3]
... но в то время он был недоступен.
- person Dr. belisarius; 31.01.2011
Read the FAQs
3) Когда вы увидите хорошие вопросы и ответы, проголосуйте за нихusing the gray triangles
, так как доверие к системе основано на репутации, которую пользователи получают, делясь своими знаниями. Также не забудьте принять ответ, который лучше решает вашу проблему, если таковой имеется,by pressing the checkmark sign
- person Dr. belisarius   schedule 30.01.2011