[Solved]Write Function Min Split Scheme Takes List Two Positive Integers Duplicates Possible Auxil Q37177612
Write a function min-split in Scheme that takesa list of two or more positive integers (duplicates are possible)and other auxiliary parameters of your choice. The list L is flat,i.e., it does not contain sublists. The functionmin-split returns the size of the minimum split ofa list L. It is up to you to choose the auxiliary parameters thatmin-split takes. (Auxiliary parameters areparameters used to help find the solution. The list parameter ismandatory and thus not an auxiliary parameter.) All auxiliaryparameters must be numeric (not lists) and should have initialvalues set to zero.
For example, if L is ‘(1 2 3) and you decide to use two additionalauxiliary parameters, min-split should be calledas follows:
(min-split ‘(1 2 3) 0 0)
If there are three auxiliary parameters, then it must becalled:
(min-split ‘(1 2 3) 0 0 0)
Terminology:
– A split is a division of L into two subsets: every element of Lmust belong to exactly one of the subsets and no elements can beleft out of the split.
– The size of a split is defined as |S1 – S2|, where S1is the sumof all integers in one of the subsets of the split and S2 is thesum of all integers in the other subset. In other words, tocalculate the size of the split one needs to find the absolutevalue of the difference of the sums.
-The minimum split is the one with the smallest size among allpossible splits. The program min-split needs toprint the size of the minimum split. It is possible that there areseveral minimum splits. In this case, all of them must have thesame size.
Examples:
‘(1 1) returns 0. The minimum split is {1} and {1}. The size ofthe split is 1 – 1 = 0.
‘(1 2 3) returns 0. The minimum split is {1, 2} and {3}. Thesize of the split is 3 – 3 = 0. There are other splits such as {1,3} and {2}; {1} and {2, 3}; and {1, 2, 3} and the empty set. Theresplit sizes are greater than 0, however, so are not minimumsplits.
‘(8 6 10 7) returns 1. The minimum split is {6, 10} and {7, 8}.Its size is 16 – 15 = 1.
‘(12 10 11 8 9) returns 4. The minimum split is {11, 12} and {8,9, 10}. Its size is 27 – 23 = 4.
‘(1 2 1 3 4 7) returns 0. The minimum split is {1, 1, 7} and {2,3, 4}. Its size is 9 – 9 = 0.
The whole solution must be packed in one recursive functionmin-split which must look as follows
(define min-split (lambda ()
(cond
…
)))
In other words, you must choose your auxiliary parameters anddefine ONE COND statement.
Inside COND, you can only use ONLY the following constructs:
– abs
– null?
– car
– cdr
– else
– +
– –
– <
– min-split
– if
– user defined names (for the names of your parameters)
– integer literals
– parentheses
You cannot use a construct if it is not listed above. The use ofuser-defined functions, except for min-split, is not allowed. Youcannot define or call any other function except formin-split and what is listed above. In otherwords, your code use only one function, min-splitwhich must be defined using the constructs from the list above.
If your program uses a construct not on the list, then it is nota solution to this homework. Yes, greater than can be used to solvethe problem, however, it is not as natural for the problem beinggiven. So, try to restrict yourself to this set of constructs.
Your report MUST include a brief explanation of the functionparameters and a brief example of how the function is called.
Your submission must include 2 files:
1.) Thesource code in R5RS
2.) 1 -2 page description of your algorithm and its complexity as an ACIItext document, MS Word document, or a PDF file. Since the programyou must write is short, the description of the algorithm andcomplexity analysis carry significant weight on your grade.
Expert Answer
Answer to Write a function min-split in Scheme that takes a list of two or more positive integers (duplicates are possible) and ot… . . .
OR

