Перестановки [] во время выполнения в Mathematica - PullRequest
1 голос
/ 12 июля 2011

Кажется, он работает очень быстро, даже для относительно больших (размер 10) комплектов. Может кто-нибудь сказать мне время выполнения большого алгоритма их конкретного алгоритма? Я не могу найти это в документации.

1 Ответ

3 голосов
/ 12 июля 2011

Моя первая попытка ответить на этот вопрос была ошибочной.Поскольку большинство внутренних алгоритмов не имеют ограниченного поведения, я решил измерить это напрямую.Я измерил время, необходимое для вычисления Permutations случайного списка значений, и рассчитал среднее и стандартное отклонение по 1000 из них для каждой длины.Я использовал максимальную длину 10 элементов из-за необходимого времени, и что Permutations работает только списки длиной до 12. Мои результаты на графике журнала:

log plot of permutation timings up to length 10

Среднееявляется черной линией, и одно стандартное отклонение представлено заполненной областью, окружающей среднее.Начиная с длины 5, это примерно прямо до 10, где можно обнаружить небольшую кривую.Я подозреваю, что это O (n!), Но для длины ниже 7 или 8 это действительно не имеет значения.Даже перестановки длины 10 дали респектабельное усреднение при 0,241 +/- 0,012 с.

...