Теперь Кью работает в режиме чтения

Мы сохранили весь контент, но добавить что-то новое уже нельзя

Как должен выглядеть алгоритм перебора всех уникальных комбинаций по трехмерному массиву, чтобы избежать комбинации с одинаковыми членами ?

Решаю задачу, нужно обработать множество комбинаций, описанных в трех мерном массиве. Как должен выглядеть алгоритм, что бы не тратить вычислительные ресурсы на повторяющие комбинации, с перестановкой членов типа а, b, с и с,b,а или а,с,b и так далее. Может есть какая то формула проверки необходимости обработки уникальной комбинации, которую я смогу вставить внутрь, третьего внутреннего цикла? Или может кто сразу предложит алгоритм для Бейсика в частности.
ПрограммированиеАлгоритмы+3
  · 2,6 K
программист  · 6 дек 2022
Это так называемая задача поиска всех возможных перестановок.
С чисто педагогичпеской точки зрения - вам было бы полезно решить её самостоятельно.
С практической точки зрения - можете воспользоваться вот этим алгоримом из стандартной библиотеки языка Haskell:
— | The 'permutations' function returns the list of all permutations of the argument.
--
— »> permutations "abc"
— ["abc","bac","cba","bca","cab","acb"]
permutations            :: [a] -> [[a]]
permutations xs0        =  xs0 : perms xs0 []
  where
    perms []     _  = []
    perms (t:ts) is = foldr interleave (perms ts (t:is)) (permutations is)
      where interleave    xs     r = let (_,zs) = interleave' id xs r in zs
            interleave' _ []     r = (ts, r)
            interleave' f (y:ys) r = let (us,zs) = interleave' (f . (y:)) ys r
                                     in  (y:us, f (t:y:us) : zs)
Спасибо за ответ и потраченные усилия, Но со стороны это выглядит так на вопрос больного как лечить, доктор... Читать дальше
Астрономия, криптография  · 4 дек 2022
> Может есть какая то формула проверки необходимости обработки уникальной комбинации, которую я смогу вставить внутрь, третьего внутреннего цикла?  При выполнении условия: a ≤ b ≤ c, не будет "повторяющихся комбинаций, с перестановкой членов типа а, b, с и с,b,а или а,с,b и так далее". > Или может кто сразу предложит алгоритм для Бейсика в частности. Насчёт Бейсик, дело... Читать далее
1 эксперт согласен
Просто гениально огромное спасибо!!!!!!!!!!!
к.ф.м.н., доцент МФТИ, с.н.с. Института Проблем Управления.  · 4 дек 2022
Если я правильно понимаю, то Вы хотите пробежать по трехмерному массиву без повторов?  Сначала решаем задачу в двумерном массиве, можно змейкой, можно спиралями — готовых ответов в интернете куча. А в трехмерном случае — можно просто решить последовательно в каждом двумерном массиве, перебрав их по очереди. Другое дело, если вам нужен какой-то более специальный обход... Читать далее
Математика, политика, высшая школа и хейт спичПерейти на t.me/forodirchNEWS
Решаю задачу с помощью 3-х вложенных циклов. Интуиция подсказывает что перед вторым и третьим внутренним циклом... Читать дальше
отшельник, схимник, человек  · 1 янв 2023
@Виктор Воеводов – вы претендуете на прикосновение к сознанию «кристалла эволюции» «Всего и Вся». Дать можно то, что имеешь, но воспримут только то, что хоть как-то узнают. «Как должен выглядеть алгоритм…?» Что бы полно-контрольно анализировать трёхмерный массив, надо использовать троично-кратные синтаксисы его построения. Моя аппликация, построенная в HTML, позволяет в... Читать далее
отшельник, схимник, человек  · 1 янв 2023
@Виктор Воеводов – вы претендуете на прикосновение к сознанию «кристалла эволюции» «Всего и Вся». Дать можно то, что имеешь, но воспримут только то, что хоть как-то узнают. «Как должен выглядеть алгоритм…?» Что бы полно-контрольно анализировать трёхмерный массив, надо использовать троично-кратные синтаксисы его построения. Моя аппликация, построенная в HTML, позволяет в... Читать далее
Увлекаюсь математическими проблемами.  · 4 дек 2022
Очень знакомая проблема. Но первопроходцы уже по этому пути прошли. Следуйте данному курсу и Вам не придётся проламывать лёд. У меня стояла задача поиска всех a, b, c в пределах ограниченного диапазона, где a*b*c <или = N^3, где N — любое целое число. Поэтому в моём коде дополнительно включена автоматизация диапазонов, по которым пробегают переменные a,b, c. Если Вам... Читать далее
По образованию физик, работаю программистом  · 4 дек 2022
Именно по трёхмерному массиву или по одномерному массиву из трёх элементов? 
В последнем случае Вы можете использовать перебор только в тех пределах, которые остаются. Например, внешний цикл перебирает от а до с, внутренний цикл перебирае от позиции внешнего цикла до c-1 и так далее.
Общего алгоритма нет, нужно изобретать или искать в справочниках/интернете для конкретных случаев.
Решаю задачу с помощью 3-х вложенных циклов. Интуиция подсказывает что перед вторым и третьим внутренним циклом... Читать дальше