Я ищу эффективный метод для создания комбинации чисел во всех возможных сочетаниях. Итак, если бы у меня был общий список целых чисел (1 - 120), я бы хотел, чтобы на одном из результатов на самом деле было все 120 номеров в численном порядке от 1 до 120, и тогда мне понадобилась бы всякая другая комбинация, где эти числа были в разном порядке ,Создайте все возможные комбинации набора чисел в C#
ответ
Ну, когда вы нашли способ быстро сделать это, пойдите и призовите нобелевскую премию.
Вы просто сломали каждый современный механизм шифрования, основанный на аналогичном primciple - тот факт, что вычисление всех возможных комбинаций двух (простых) nubmers невозможно быстро.
Если это домашнее задание, вы поднялись на шутку. если вы действительно думаете, что есть волшебный скрытый секрет, который мы вам не говорим, вы - живете в заблуждениях.
Извините, это одна из проблем, которые просто не имеют смысла.
Я ищу для эффективного метода
Определение эффективной. Самый эффективный метод, который я вижу сейчас, - это захват TON компьютеров и поиск его с грубой силой. NSA якобы может сделать это за 128 номеров в течение приемлемого периода времени;)
Альтернатива seonc, если у вас ограниченные деньги, - это время. Поместите небольшую машину с солнечной панелью где-нибудь и позвольте ей рассчитать какое-то время. Предположительно, в соответствии с одной истинной историей мира (как сказано в «Руководстве гитховцев о Галактике»), поэтому Земля существует - рассчитать вопрос до абсолютного ансвера, который равен 42.
ТРЕТИЙ путь - безусловно самый эффективный - просто использовать 42 как ответ.Если это подходит, вы только что нашли вопрос, если это не просто очередной провал.
К сожалению, я должен был сделать это несерьезным. Люди регулярно приходят с "простыми" математические вопросы, которые просто падают в факторизационный тип ловушки.
Для чего это необходимо, вот как это можно сделать для небольших диапазонов (например, 1-8) с использованием LINQ и рекурсии.
Если вы попытаетесь увеличить диапазон постепенно, вы поймете, почему этот подход не сработает.
static void Main(string[] args)
{
int[][] combinations = GetCombinations(8).Select(c => c.ToArray()).ToArray();
string s = string.Join("\n", combinations.Select(c => string.Join(",", c)));
Console.WriteLine(s);
}
static IEnumerable<IEnumerable<int>> GetCombinations(int count)
{
return GetCombinations(Enumerable.Range(1, count));
}
static IEnumerable<IEnumerable<int>> GetCombinations(IEnumerable<int> elements)
{
if (elements.Count() == 1)
return EnumerableSingle(elements);
return elements.SelectMany((element, index) =>
GetCombinations(elements.ExceptAt(index)).Select(tail =>
tail.Prepend(element)));
}
static IEnumerable<T> ExceptAt<T>(this IEnumerable<T> source, int index)
{
return source.Take(index).Concat(source.Skip(index + 1));
}
static IEnumerable<T> Prepend<T>(this IEnumerable<T> source, T element)
{
return EnumerableSingle(element).Concat(source);
}
static IEnumerable<T> EnumerableSingle<T>(T element)
{
return Enumerable.Repeat(element, 1);
}
- 1. Создайте все возможные комбинации предметов
- 2. Найти все возможные комбинации определенного размера для набора чисел
- 3. Все возможные уникальные комбинации набора в JavaScript
- 4. как получить все возможные комбинации набора букв
- 5. Создайте все возможные комбинации в R
- 6. Найти все возможные комбинации множества чисел
- 7. Создайте все возможные комбинации с помощью deque и recursion C++
- 8. все возможные комбинации из множества
- 9. все возможные комбинации бит
- 10. Все возможные комбинации из трех чисел в наборе в Python
- 11. все возможные комбинации
- 12. все возможные комбинации
- 13. Найти все комбинации заданного набора чисел
- 14. Перечислите все возможные комбинации
- 15. все возможные комбинации фаз
- 16. R все возможные комбинации
- 17. Все возможные комбинации слова
- 18. Все возможные комбинации алгоритмов
- 19. Все возможные комбинации монет
- 20. найти все возможные комбинации
- 21. Все возможные комбинации элементов
- 22. Получить все возможные комбинации
- 23. Создайте все возможные комбинации binomic переменных в г
- 24. Все возможные уникальные комбинации R
- 25. Петля, ищущая все возможные комбинации в массиве
- 26. R Все возможные суб-комбинации
- 27. Все возможные комбинации набора, что сумма к целевому значению
- 28. место все возможные комбинации GroupBy
- 29. Все возможные комбинации Строка - скорость
- 30. Matlab: все возможные варианты/комбинации
Вы нашли или разработали метод, который недостаточно эффективен для удовлетворения ваших требований? И требуйте помощи, уточняющей его (так, вероятно, следует опубликовать его) - Или это просто просьба «отправить отправить код»? –
Количество перестановок будет высоким (а именно 120!) И, вероятно, потребуется несколько дней для повторения. – vidstige
Вы понимаете, что есть 120! разные комбинации, правильно? На 1 миллион перестановок на наносекунду, которые все равно будут занимать 1,2e178 лет. – helloworld922