Я исследовал и нашел ЛОТОВ подобных запросов, но ничего не было достаточно, что мне было нужно.
Вот моя проблема.Я работаю в C #, и у меня есть массив FileInfo [] с неизвестным количеством элементов в нем.
FileInfo[] files = new FileInfo[]
{
new FileInfo(@"C:\a.jpg"),
new FileInfo(@"C:\b.jpg"),
new FileInfo(@"C:\c.jpg"),
new FileInfo(@"C:\d.jpg"),
new FileInfo(@"C:\e.jpg"),
new FileInfo(@"C:\f.jpg"),
new FileInfo(@"C:\g.jpg"),
new FileInfo(@"C:\h.jpg"),
new FileInfo(@"C:\i.jpg"),
}; // Using 9 elements for this example
И мне нужно сгенерировать список всех возможных комбинаций переупорядочения этих файлов безповторяя файлы.
Итак, некоторые из моих результатов будут такими (пример не в формате кода):
a, b, c, d, e, f, g, h, i
a, b, c, d, e, f, g, i, h // i & h switched
a, b, c, d, e, f, h, g, i // last 3 elements switched
a, a, b, b, c, c, d, d, e // THIS IS NOT ACCEPTED, because elements are duplicated
И так далее, пока я не придумаю всевозможная комбинация
Таким образом, общее количество результатов должно быть факториалом количества элементов в массиве.В этом примере 9 элементов, поэтому должно быть 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2 * 1 = 362 880 возможных комбинаций.
Я возился с этимпару дней, и я просто не могу обдумать это.Любая помощь приветствуется, особенно с примерами кода!
Спасибо!