Write a function min-split in scheme that takes a list

Assignment Help Programming Languages
Reference no: EM131945466

Assignment: Programming Languages

The assignment must be submitted electronically. Your submission must include 2 files:

1.) The source code in R5RS

2.) 1 -2 page description of your algorithm and its complexity as an ACII text document, MS Word document, or a PDF file. Since the program you must write is short, the description of the algorithm and complexity analysis carry significant weight on your grade.

Pack all your files in a zip file. Use the following naming conventions. If your name is John Smith, then your file name must be jsmith.zip. Zip files which are not properly named or packed will receive 0 points.

Write a function min-split in Scheme that takes a 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 function min-split returns the size of the minimum split of a list L.

It is up to you to choose the auxiliary parameters that min-split takes. (Auxiliary parameters are parameters used to help find the solution. The list parameter is mandatory and thus not an auxiliary parameter.) All auxiliary parameters must be numeric (not lists) and should have initial values set to zero. For example, if L is ‘(1 2 3) and you decide to use two additional auxiliary parameters, min-split should be called as follows:

(min-split ‘(1 2 3) 0 0)

If there are three auxiliary parameters, then it must be called:

(min-split ‘(1 2 3) 0 0 0)

Terminology:

- A split is a division of L into two subsets: every element of L must belong to exactly one of the subsets and no elements can be left out of the split.

- The size of a split is defined as |S1 - S2|, where S1is the sum of all integers in one of the subsets of the split and S2 is the sum of all integers in the other subset. In other words, to calculate the size of the split one needs to find the absolute value of the difference of the sums.

-The minimum split is the one with the smallest size among all possible splits. The program min-split needs to print the size of the minimum split. It is possible that there are several minimum splits. In this case, all of them must have the same size.

Examples:

‘(1 1) returns 0. The minimum split is {1} and {1}. The size of the split is 1 -1 = 0.

‘(1 2 3) returns 0. The minimum split is {1, 2} and {3}. The size 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. There split sizes are greater than 0, however, so are not minimum splits.

‘(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 function min-split which must look as follows

(define min-split (lambda (<list L followed by your auxiliary parameters of your choice initially set to zero>)

(cond
...
)))

In other words, you must choose your auxiliary parameters and define 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 of user-defined functions, except for min-split, is not allowed. You cannot define or call any other function except formin-splitand what is listed above. In other words, your code use only one function, min-split which must be defined using the constructs from the list above.

If your program uses a construct not on the list, then it is not a solution to this homework. Yes, greater than can be used to solve the problem, however, it is not as natural for the problem being given. So, try to restrict yourself to this set of constructs.

Your report MUST include a brief explanation of the function parameters and a brief example of how the function is called.

Reference no: EM131945466

Questions Cloud

Trace blood from point of origin : The assignment is a blood tracer. It asks to "trace blood from point of origin (the right brachial vein) to the upper left leg
Determine the phenotypic ratio of offspring for cross : Use a Punnett Square to determine the phenotypic ratio of offspring for this cross: A heterozygous purple plant crossed with a homozygous purple plant.
Write a research paper on the highlighted topic : The purpose of this paper is to study insurance market of Saudi Arabia and identify the main challenges as well as benefits to the Saudi economy.
Organization can benefit from short-term financing : Discuss the three advantages that an organization can benefit from short-term financing. Provide at least one example.
Write a function min-split in scheme that takes a list : Write a function min-split in Scheme that takes a list of two or more positive integers (duplicates are possible) and other auxiliary parameters of your choice.
Develop an arguable proposition on which to write an essay : Develop an arguable proposition on which to write an essay. Your paper should be presented in standard academic essay format.
Define cultural competence and cultural safety : Define cultural competence and cultural safety. Discuss why these concepts are important considerations when developing a program like the one in the video
The financial results of the most recent years : Select one organization and look for the financial results (in the annual report) of the most recent years
Risk factor for the development of hypertension : Why is being African-American a risk factor for the development of Hypertension? Is being African-American a genetic predisposition?

Reviews

Write a Review

Programming Languages Questions & Answers

  Write a haskell program to calculates a balanced partition

Write a program in Haskell which calculates a balanced partition of N items where each item has a value between 0 and K such that the difference b/w the sum of the values of first partition,

  Create an application to run in the amazon ec2 service

In this project you will create an application to run in the Amazon EC2 service and you will also create a client that can run on local machine and access your application.

  Explain the process to develop a web page locally

Explain the process to develop a Web page locally

  Write functions

These 14 questions covers java class, Array, link list , generic class.

  Programming assignment

If the user wants to read the input from a file, then the output will also go into a different file . If the user wants to read the input interactively, then the output will go to the screen .

  Write a prolog program using swi proglog

Write a Prolog program using swi proglog

  Create a custom application using eclipse

Create a custom Application Using Eclipse Android Development

  Create a application using the mvc architecture

create a application using the MVC architecture. No scripting elements are allowed in JSP pages.

  Develops bespoke solutions for the rubber industry

Develops bespoke solutions for the rubber industry

  Design a program that models the worms behavior

Design a program that models the worm's behavior.

  Writing a class

Build a class for a type called Fraction

  Design a program that assigns seats on an airplane

Write a program that allows an instructor to keep a grade book and also design and implement a program that assigns seats on an airplane.

Free Assignment Quote

Assured A++ Grade

Get guaranteed satisfaction & time on delivery in every assignment order you paid with us! We ensure premium quality solution document along with free turntin report!

All rights reserved! Copyrights ©2019-2020 ExpertsMind IT Educational Pvt Ltd