Алгоритм для перестановки элементов в Массиве

Предупреждение: Частичное Решение

, Если мы следуем за физикой, как указано, нет никакой максимальной скорости. С чисто физической точки зрения Вы зафиксировали ускорение в постоянной величине, что означает, что скорость всегда увеличивается.

Как альтернатива, рассмотрите две силы, действующие на Ваш объект:

  • постоянная внешняя сила, F, который имеет тенденцию ускорять его, и
  • сила перетаскивания, d, который пропорционален скорости и имеет тенденцию замедлять ее.

, Таким образом, скорость при повторении n становится: vn = v0 + n F - dvn-1

Вы попросили выбирать максимальную скорость, vnmax, который происходит при повторении nmax.

Примечание, что проблема под-ограниченным ; то есть, F и d связан, таким образом, можно произвольно выбрать значение для одного из них, затем вычислить другой.

Теперь, когда прокрутка шара, действительно ли кто-либо готов взять математику?

Предупреждение: это ужасно и включает степенной ряд !

Редактирование: Почему самка, последовательность n**F** в первом уравнении появляется буквально, если нет пространство после n?

6
задан Stefan 27 August 2009 в 20:05
поделиться

2 ответа

This gives you next permutation:

bool Increase(int[] values) {
   // locate the last item which is smaller than the following item
   int pos = values.Length - 2;
   while (pos >= 0 && values[pos] > values[pos + 1]) pos--;
   // if not found we are done
   if (pos == -1) return false;
   // locate the item next higher in value
   int pos2 = values.Length - 1;
   while (values[pos2] < values[pos]) pos2--;
   // put the higher value in that position
   int temp = values[pos];
   values[pos] = values[pos2];
   values[pos2] = temp;
   // reverse the values to the right
   Array.Reverse(values, pos + 1, values.Length - pos - 1);
   return true;
}

Edit:
Changed Array.Sort to Array.Reverse. The items are always in descending order and should be in ascending order, so they give the same result.

9
ответ дан 8 December 2019 в 16:06
поделиться

Похоже, вы хотите сгенерировать перестановок вашего списка в лексическом порядке . Эти условия поиска должны начать вас на полезном пути.

Например, Python включает их в модуль itertools , начиная с версии 2.6. В этой документации показан код, реализующий такой алгоритм.

6
ответ дан 8 December 2019 в 16:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: