Task1aSumOfSubsets (task1a_sum_of_subsets v0.1.0)

A module that implements functions for getting sum of subsets from a given 2d matrix and array of digits

Link to this section Summary

Link to this section Functions

Link to this function

sum_of_all(array_of_digits, matrix_of_sum)

#Function name:

   sum_of_all

#Inputs:

   array_of_digits : Array containing single digit numbers to satisty sum
   matrix_of_sum   : A 2d matrix containing two digit numbers for which subsebts are to be created

#Output:

   Map of each sum value and it's respective subsets

#Details:

   Finds the all possible subsets from given array of digits for all valid sums elements of given 2d matrix

#Example call: if given array of digits is as follows:

array_of_digits = [3, 5, 2, 7, 4, 2, 3]

and if given 2d matrix is as follows:

matrix_of_sum = [
                  [21 ,"na", "na", "na", 12],
                  ["na", "na", 12, "na", "na"],
                  ["na", "na", "na", "na", "na"],
                  [17, "na", "na", "na", "na"],
                  ["na", 22, "na", "na", "na"]
                ]

iex(1)> array_of_digits = [3, 5, 2, 7, 4, 2, 3]
iex(2)> matrix_of_sum = [
...(2)>                   [21 ,"na", "na", "na", 12],
...(2)>                   ["na", "na", 12, "na", "na"],
...(2)>                   ["na", "na", "na", "na", "na"],
...(2)>                   [17, "na", "na", "na", "na"],
...(2)>                   ["na", 22, "na", "na", "na"]
...(2)>                 ]
iex(3)> Task1aSumOfSubsets.sum_of_all(array_of_digits, matrix_of_sum)
%{
  12 => [[3, 2, 7],[3, 7, 2],[3, 4, 5],[7, 5],[3, 2, 2, 5],[3, 2, 4, 3],[2, 7, 3],[3, 4, 2, 3],[7, 2, 3],[4, 5, 3],[2, 2, 5, 3]],
  17 => [[3, 2, 7, 5],[3, 7, 2, 5],[3, 4, 7, 3],[3, 2, 7, 2, 3],[3, 2, 4, 5, 3],[2, 7, 5, 3],[3, 4, 2, 5, 3],[7, 2, 5, 3]],
  21 => [[3, 2, 4, 7, 5],[3, 4, 7, 2, 5],[3, 2, 4, 7, 2, 3],[2, 4, 7, 5, 3],[4, 7, 2, 5, 3]],
  22 => [[3, 4, 7, 5, 3], [3, 2, 7, 2, 5, 3]]
}
Link to this function

sum_of_one(array_of_digits, sum_val)

#Function name:

   sum_of_one

#Inputs:

   array_of_digits : Array containing single digit numbers to satisty sum
   sum_val         : Any 2 digit value for which subsets are to be created

#Output:

   List of list of all possible subsets

#Details:

   Finds the all possible subsets from given array of digits for a 2 digit value

#Example call: if given array of digits is as follows:

array_of_digits = [3, 5, 2, 7, 4, 2, 3]
and sum_val = 10

iex(1)> array_of_digits = [3, 5, 2, 7, 4, 2, 3]
iex(2)> Task1aSumOfSubsets.sum_of_one(array_of_digits, 10)
[[3, 7],[3, 2, 5],[3, 2, 5],[3, 4, 3],[7, 3],[3, 2, 2, 3],[2, 5, 3],[2, 5, 3]]
Link to this function

valid_sum(matrix_of_sum)

#Function name:

   valid_sum

#Inputs:

   matrix_of_sum   : A 2d matrix containing two digit numbers for which subsebts are to be created

#Output:

   List of all vallid sums from the given 2d matrix

#Details:

   Finds the valid sum values from the given 2d matrix

#Example call: if given 2d matrix is as follows:

matrix_of_sum = [
                  [21 ,"na", "na", "na", 12],
                  ["na", "na", 12, "na", "na"],
                  ["na", "na", "na", "na", "na"],
                  [17, "na", "na", "na", "na"],
                  ["na", 22, "na", "na", "na"]
                ]

iex(1)> matrix_of_sum = [
...(1)>       [21 ,"na", "na", "na", 12],
...(1)>       ["na", "na", 12, "na", "na"],
...(1)>       ["na", "na", "na", "na", "na"],
...(1)>       [17, "na", "na", "na", "na"],
...(1)>       ["na", 22, "na", "na", "na"]
...(1)>     ]
iex(2)> Task1aSumOfSubsets.valid_sum(matrix_of_sum)
[21, 12, 12, 17, 22]