How to resolve the algorithm Combinations step by step in the Erlang programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Combinations step by step in the Erlang programming language

Table of Contents

Problem Statement

Given non-negative integers   m   and   n,   generate all size   m   combinations   of the integers from   0   (zero)   to   n-1   in sorted order   (each combination is sorted and the entire table is sorted).

3   comb   5     is: If it is more "natural" in your language to start counting from   1   (unity) instead of   0   (zero), the combinations can be of the integers from   1   to   n.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Combinations step by step in the Erlang programming language

Source code in the erlang programming language

-module(comb).
-compile(export_all).

comb(0,_) ->
    [[]];
comb(_,[]) ->
    [];
comb(N,[H|T]) ->
    [[H|L] || L <- comb(N-1,T)]++comb(N,T).


-module(comb).
-export([combinations/2]).

combinations(K, List) ->
    lists:last(all_combinations(K, List)).

all_combinations(K, List) ->
    lists:foldr(
      fun(X, Next) ->
              Sub = lists:sublist(Next, length(Next) - 1),
              Step = [[]] ++ [[[X|S] || S <- L] || L <- Sub],
              lists:zipwith(fun lists:append/2, Step, Next)
      end, [[[]]] ++ lists:duplicate(K, []), List).


  

You may also check:How to resolve the algorithm GUI enabling/disabling of controls step by step in the Phix programming language
You may also check:How to resolve the algorithm Array length step by step in the 360 Assembly programming language
You may also check:How to resolve the algorithm Discordian date step by step in the EasyLang programming language
You may also check:How to resolve the algorithm Numeric error propagation step by step in the Icon and Unicon programming language
You may also check:How to resolve the algorithm Write float arrays to a text file step by step in the ZX Spectrum Basic programming language