計算從1到N的自然數中取M個數的所有組合的lua函數



--計算從1到maxNumber的自然數中取selNum個數的所有組合
function CalcNaturalNumberComb(maxNumber, selNum, tabReturn)
    local tabComb = {}
    comb_natural_number_recurisve_func = function(m,k,tab)
        for i=m,k,-1 do
            tabComb[k+1] = i
           
            if k > 1 then
                comb_natural_number_recurisve_func(i-1,k-1,tab)
            else
                local tabOut = {}
                local nStart = tonumber(tabComb[1])
                for n=nStart,1,-1 do
                    table.insert(tabOut,tabComb[n+1])
                end
                table.insert(tab,tabOut)
            end
        end
    end

    tabComb = {}
    tabComb[1] = selNum
    comb_natural_number_recurisve_func(maxNumber, selNum, tabReturn)
end

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章