计算从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

猜你喜欢

转载自blog.csdn.net/missmecn/article/details/52068238