# Ada Solution Manual

Table of contents

The problems that might be challenging for at least some students are marked by; those that might be di the cult for a majority of students are marked by:

Exercises

1. Do some research on al-Khorezmi (also al-Khwarizmi), the man from whose name the word “algorithm” is derived. In particular, you should learn what the origins of the words “algorithm” and “algebra” have in common.

2. Given that the official purpose of the U.S. patent system is the promotion of the “useful arts,” do you think algorithms are patentable in this country? Should they be?

• 3. a. Write down driving directions for going from your school to your home with the precision required by an algorithm.
• b. Write down a recipe for cooking your favorite dish with the precision required by an algorithm.

4. Design an algorithm for swapping two 3 digit non-zero integers n, m. Besides using arithmetic operations, your algorithm should not use any temporary variable.

5. Design an algorithm for computing gcd(m, n) using Euclid’s algorithm.

6. Prove the equality gcd(m, n) = gcd(n, m mod n) for every pair of positive integers m and n.

7. What does Euclid’s algorithm do for a pair of numbers in which the thirst number is smaller than the second one? What is the largest number of times this can happen during the algorithm’s execution on such an input?

8. What is the smallest and the largest number of divisions possible in the algorithm for determining a prime number?

• 9. a. Euclid’s algorithm, as presented in Euclid’s treatise, uses subtractions rather than integer divisions. Write pseudocode for this version of Euclid’s algorithm.
• b. Euclid’s game (see [Bog]) starts with two unequal positive numbers on the board. Two players move in turn. On each move, a player has to write on the board a positive number equal to the difference of two numbers already on the board; this number must be new, i. e. , different from all the numbers already on the board. The player who cannot move loses the game. Should you choose to move first or second in this game?

10. The extended Euclid’s algorithm determines not only the greatest common divisor d of two positive integers m and n but also integers (not necessarily positive) x and y, such that mx + ny = d.

a. Lookup a description of the extended Euclid’s algorithm (see, e. g. , [KnuI], p. 13) and implement it in the language of your choice.

b. Modify your program for finding integer solutions to the Diophantine equation ax + by = c with any set of integer coef clients a, b, and c.

11. Locker doors There are n lockers in a hallway numbered sequentially from 1 to n. Initially, all the locker doors are closed. You make n passes by the lockers, each time starting with locker #1. On the ith pass, i = 1, 2, . . . n, you toggle the door of every ith locker: if the door is closed, you open it; if it is open, you close it. For example, after the first pass every door is open; on the second pass, you only toggle the even-numbered lockers (#2, #4, . . . ) so that after the second pass the even doors are closed and the odd ones are open; the third time through, you close the door of locker #3 (opened from the first pass), open the door of locker #6 (closed from the second pass), and so on. After the last pass, which locker doors are open and which are closed?

How many of them are open?

### Hints to Selected

Exercises

1. It is probably faster to do this by searching the Web, but your library should be able to help, too.

2. One can? nd arguments supporting either view. There is a well-established principle pertinent to the matter, though: scienti? c facts or mathematical expressions of them are not patentable. (Why do you think this is the case?) But should this preclude granting patents for all algorithms?

3. You may assume that you are writing your algorithms for a human rather than a machine. Still, make sure that your descriptions do not contain obvious ambiguities. Knuth ([KnuI], p. 6) provides an interesting comparison between cooking recipes and algorithms.

4. Prove that if d divides both m and n (i. e. , m = sd and n = td for some positive integers s and t), then it also divides both n and r = m mod n and vice versa. Use the formula m = qn + r (0 ? r < n) and the fact that if d divides two integers u and v, it also divides u + v and u * v. (Why? ) 7. Perform one iteration of the algorithm for two arbitrarily chosen integers m < n.

• 5. a. Use the equality gcd(m, n) = gcd(m * n, n) for m * n > 0.
• b. The key is to figure out the total number of distinct numbers that can be written on the board, starting with an initial pair m, n where m > n ? 1. You should exploit a connection of this question to the question of part (a). Considering small examples, especially those with n = 1 and n = 2, should help, too.

6. Of course, for some clients, the equation will have no solutions.

7. Tracing the algorithm by hand for, say, n = 10, and studying its outcome should help to answer both questions.

### Solutions to Exercises

1. Al-Khwarizmi (9th century C. E. ) was a great Arabic scholar, most famous for his algebra textbook. In fact, the word “algebra” is derived from the Arabic title of this book while the word “algorithm” is derived from a translation of Al-Khwarizmi’s last name.

2. This legal issue has yet to be settled. The current legal state of a? airs distinguishes mathematical algorithms, which are not patentable, from other algorithms, which may be patentable if implemented as computer programs.

Output:  The greatest common divisor of m and n while n* 0 do r 5.

3. Let us? first prove that if d divides two integers u and v, it also divides both u + v and u* v. By de? the nation of division, there exists integers s and t such that u = sd and v = td. Therefore u ± v = sd ± td = (s ± t)d, i. . , d divides both u + v and u * v.

4. Also note that if d divides u, it also divides any integer multiple ku of u. Indeed, since d divides u, u = sd. Hence ku = k(sd) = (ks)d, i. e. , d divides ku. Now we can prove the assertion in question. For any pair of positive integers m and n, if d divides both m and n, it also divides both n and r = m mod n = m ? qn. Similarly, if d divides both n and r = m mod n = m ? qn, it also divides both m = r + qn and n. Thus, the two pairs (m, n) and (n, r) have the same? nite nonempty set of common divisors, including the largest element in the set, i. , gcd(m, n) = gcd(n, r).

5. For any input pair m, n such that 0? m < n, Euclid’s algorithm simply swaps the numbers on the first iteration: gcd(m, n) = gcd(n, m) because m mod n = m if m < n. Such a swap can happen only once since gcd(m, n) = gcd(n, m mod n) implies that the first number of the new pair (n) will be greater than its second number (m mod n) after every iteration of the algorithm.

6. Algorithm: While i 0) && (numbers[j-1] > index)) { numbers[j] = numbers[j-1]; j = j – 1; } numbers[j] = index; } }

7. Align the pattern with the beginning of the text. Compare the corresponding characters of the pattern and the text left-to-right until either all the pattern characters are matched (then stop–the search is successful) or the algorithm runs out of the text’s characters (then stop–the search is unsuccessful) or a mismatching pair of characters is encountered. In the latter case, shift the pattern one position to the right and resume the comparisons.

• 8. a. If we represent each of the river’s banks and each of the two islands by vertices and the bridges by edges, we will get the following graph: 0 a b c b c d d (This is, in fact, a multigraph, not a graph, because it has more than one edge between the same pair of vertices. But this doesn’t matter for the issue at hand. ) The question is whether there exists a path (i. e. , a sequence of adjacent vertices) in this multigraph that traverses all the edges exactly once and returns to a starting vertex. Such paths are called Eulerian circuits; if a path traverses all the edges exactly once but does not return to its starting vertex, it is called an Eulerian path.
• b. Euler proved that an Eulerian circuit exists in a connected (multi)graph if and only if all its vertices have even degrees, where the degree of a vertex is de? ned as the number of edges for which it is an endpoint. Also, an Eulerian path exists in a connected (multi)graph if and only if it has exactly two vertices of odd degrees; such a path must start at one of those two vertices and end at the other. Hence, for the multigraph of the puzzle, there exists neither an Eulerian circuit nor an Eulerian path because all its four vertices have odd degrees. If we are to be satis? d with an Eulerian path, two of the multigraph’s vertices must be made even.

A Hamiltonian circuit is marked on the graph below:

At least three “reasonable” criteria come to mind: the fastest trip, a trip with the smallest number of train stops, and a trip that requires the smallest number of train changes. Note that the first criterion requires information about the expected traveling time between stations and the time needed for train changes whereas the other two criteria do not require such information. A natural approach is to mimic subway plans by representing stations by vertices of a graph, with two vertices connected by an edge if there is a train line between the corresponding stations. If the time spent on changing a train is to be taken into account (e. g. , because the station in question is on more than one line), the station should be represented by more then one vertex. 22 7. procedure Queens(unused, board, col, N) if col > N then print board else{ col.

Calculate the price
Make an order in advance and get the best price
Pages (550 words)
\$0.00
*Price with a welcome 15% discount applied.
Pro tip: If you want to save more money and pay the lowest price, you need to set a more extended deadline.
We know how difficult it is to be a student these days. That's why our prices are one of the most affordable on the market, and there are no hidden fees.

Instead, we offer bonuses, discounts, and free services to make your experience outstanding.
How it works
Receive a 100% original paper that will pass Turnitin from a top essay writing service
step 1
Upload your instructions
Fill out the order form and provide paper details. You can even attach screenshots or add additional instructions later. If something is not clear or missing, the writer will contact you for clarification.
Pro service tips
How to get the most out of your experience with MyhomeworkGeeks
One writer throughout the entire course
If you like the writer, you can hire them again. Just copy & paste their ID on the order form ("Preferred Writer's ID" field). This way, your vocabulary will be uniform, and the writer will be aware of your needs.
The same paper from different writers
You can order essay or any other work from two different writers to choose the best one or give another version to a friend. This can be done through the add-on "Same paper from another writer."
Copy of sources used by the writer
Our college essay writers work with ScienceDirect and other databases. They can send you articles or materials used in PDF or through screenshots. Just tick the "Copy of sources" field on the order form.
Testimonials
See why 20k+ students have chosen us as their sole writing assistance provider
Check out the latest reviews and opinions submitted by real customers worldwide and make an informed decision.
Nursing
thank you so much
Customer 452749, June 10th, 2021
Human Resources Management (HRM)
excellent job
Customer 452773, June 25th, 2023
Management
Love this writer!!! Great work
Customer 452597, April 5th, 2021
Nursing
I just need some minor alterations. Thanks.
Customer 452547, February 10th, 2021
English 101
IThank you
Customer 452631, April 6th, 2021
History
Don't really see any of sources I provided, but elsewise its great, thank you!
Customer 452697, May 8th, 2021
Human Resources Management (HRM)
excellent job
Customer 452773, July 17th, 2023
Business and administrative studies
looks good thank you
Customer 452773, March 3rd, 2023
Management
Thank you!!! I received my order in record timing.
Customer 452551, February 9th, 2021
DATA565
The support team was late responding , my paper was late because the support team didn't respond in a timely manner. The writer of the paper finally got it right but seems there was a problem getting the revisioin to me.
Customer 452773, April 7th, 2024
Managerial Accounting & Legal Aspects of Business ACC/543
excellent work
Customer 452773, February 7th, 2024
Business and administrative studies
Excellent job
Customer 452773, March 9th, 2023
11,595
Customer reviews in total
96%
Current satisfaction rate
3 pages
Average paper length
37%
Customers referred by a friend
OUR GIFT TO YOU
15% OFF your first order
Use a coupon FIRST15 and enjoy expert help with any task at the most affordable price.
Claim my 15% OFF Order in Chat

## Sometimes it is hard to do all the work on your own

Let us help you get a good grade on your paper. Get professional help and free up your time for more important courses. Let us handle your;

• Dissertations and Thesis
• Essays
• All Assignments

• Research papers
• Terms Papers
• Online Classes