Функция за възможни пермутации и комбинаторика 1в-блаженство
Функцията връща масив от всички възможни пермутации на произволен комплект, състоящ се от предварително определен брой елементи. Със или без повторения елементи.
Нужда (не питай защо) да се намери и да се анализират всички възможни комбинации от елементите на масив от произволна дължина. учебник задача. Тъй като броят на възможните комбинации от елементи, както и продължителността на етапа на задачи да се определи, възниква рекурсивен разтвор. И това, което аз намирам по този въпрос? Няма за какво да 1C, но най-различни приложения ексклузивни само на тях, Delphi и дори VBA.
Е, мисля, - необходимо е да се преведе. Превод на 1С. Но това беше необходимо, че не повторения на едни и същи елементи на получените комбинации са. Започнах да се доразвие и да се произнесе. В резултат на първоначалния алгоритъм е оставил нищо, и изпълнението по себе си е по-кратък от предложения в C, така че дори и с допълнителната опция без повторение елементи върху възможните комбинации.
Гордея се на 20 минути и реших да споделя с общността. Може би някой ще дойде по-удобно и ще бъде моята карма веднъж Подобно :)
Всички аргументи, надявам се, че е ясно от описанието. Според резултатите: изходът е един набор от фиксирани масиви. Фиксирана масив - възможна комбинация, и броя на елементите на получения масив е броят на Намерено (възможни комбинации). Всеки масив се състои от фиксиран масив елементи DlinaPerestanovki mElementov - че има някакъв набор от елементи на първоначалния набор от ценности. Или един от възможните комбинации.
Най-очевидно нещо, но все пак аз предупреждавам. Ако DlinaPerestanovki в аргументи ще бъде по-голям от броя на елементите в масив mElementov на и уникални условия в този случай ще бъде истината, вие ще получите най-прекрасно, но резултатите празен масив. Защо? Да, защото не може да събира от възможните елементи на комбинация от X до дължина Y, без да се повтарят, ако X Послепис Очаквайки общественото възмущение от "какво за нас честен, интелигентен, скромен и обикновен 1C negam нужда от него", спомни една публикация за това как да се помогне на счетоводител, за да намерите това, което са възможни формата за номера в размер на грешка. Ето ви и са готови на обхвата на функцията. И използва реален, траен и маркови 1C, а не Java :)