1answer.
Ask question
Login Signup
Ask question
All categories
  • English
  • Mathematics
  • Social Studies
  • Business
  • History
  • Health
  • Geography
  • Biology
  • Physics
  • Chemistry
  • Computers and Technology
  • Arts
  • World Languages
  • Spanish
  • French
  • German
  • Advanced Placement (AP)
  • SAT
  • Medicine
  • Law
  • Engineering
garik1379 [7]
3 years ago
7

Consider the problem of making change for n cents using the fewest number of coins. Assume that each coins value is an integer.

a. You have available coin denominations of 1 cent, 5 cents, 10 cents, 25 cents, as in the US coins of penny, nickel, dime, quarter. Assume there is infinite availability of each of these four coin denomination types. Describe a greedy algorithm to make change using the fewest number of coins. b. Consider your greedy algorithm and making change for n=30 cents. Show that the optimal solution for making change includes your greedy choice. To do so, assume that your greedy choice is not in the optimal solution. Then use the "cut and paste" argument to show that you can replace other coins by your greedy choice, therefore finding a better solution than what was assumed to be optimal. This is in contradiction to the assumption, so your greedy choice is in the optimal solution. c. Although the greedy algorithm is optimal for the US coins, it is not necessarily optimal for any set of coins. Give an example of a different set of made up coin denominations with different values, for which the greedy algorithm does not yield an optimal solution. Your set should include a penny so that there is a solution for every value of n. As before, assume there is infinite availability of each of the coin denomination types. Show specifically a counter example in which the greedy algorithm yields a change solution that is not optimal, that is, does not include the fewest number of coins. d. Name another algorithmic approach that will find an optimal solution to your example in (c).
Computers and Technology
1 answer:
Oksana_A [137]3 years ago
5 0

Answer:

There are two algorithms in which apply different optimal solutions.

They are: A Dynamic and Naive recursive programs

Explanation:

// A Naive recursive C++ program to find minimum of coins  

// to make a given change V  

#include<bits/stdc++.h>  

using namespace std;  

// m is size of coins array (number of different coins)

int minCoins(int coins[], int m, int V)  

{  

// base case  

if (V == 0) return 0;  

// Initialize result

int res = INT_MAX;  

// Try every coin that has smaller value than V  

for (int i=0; i<m; i++)  

{  

if (coins[i] <= V)  

{  

 int sub_res = minCoins(coins, m, V-coins[i]);  

 // Check for INT_MAX to avoid overflow and see if  

 // result can minimized

 if (sub_res != INT_MAX && sub_res + 1 < res)  

  res = sub_res + 1;  

}  

}  

return res;  

}  

// Driver program to test above function  

int main()  

{  

int coins[] = {9, 6, 5, 1};  

int m = sizeof(coins)/sizeof(coins[0]);  

int V = 11;  

cout << "Minimum coins required is "

 << minCoins(coins, m, V);  

return 0;  

}  

.........................................

// A Dynamic Programming based C++ program to find minimum of coins  

// to make a given change V  

#include<bits/stdc++.h>  

using namespace std;  

// m is size of coins array (number of different coins)  

int minCoins(int coins[], int m, int V)  

{  

// table[i] will be storing the minimum number of coins  

// required for i value. So table[V] will have result  

int table[V+1];  

// Base case (If given value V is 0)  

table[0] = 0;  

// Initialize all table values as Infinite  

for (int i=1; i<=V; i++)  

 table[i] = INT_MAX;  

// Compute minimum coins required for all  

// values from 1 to V  

for (int i=1; i<=V; i++)  

{  

 // Go through all coins smaller than i  

 for (int j=0; j<m; j++)  

 if (coins[j] <= i)  

 {  

  int sub_res = table[i-coins[j]];  

  if (sub_res != INT_MAX && sub_res + 1 < table[i])  

   table[i] = sub_res + 1;  

 }  

}  

return table[V];  

}  

// Driver program to test above function  

int main()  

{  

int coins[] = {9, 6, 5, 1};  

int m = sizeof(coins)/sizeof(coins[0]);  

int V = 11;  

cout << "Minimum coins required is "

 << minCoins(coins, m, V);  

return 0;  

}  

You might be interested in
Consider the following program segment. ifstream inFile; //Line 1 int x, y; //Line 2 ... //Line 3 inFile &gt;&gt; x &gt;&gt; y;
harina [27]

Answer:

The answer to this question is the option "a".

The statement for opening file can be given as:  

inFile.open("progdata.dat");

Explanation:

In the above statement, this statement is part of the c++ programming language. To open any file we use the following syntax that can be given as:

Syntax:

inFile.open(filename, mode);

In the above syntax inFile.open() is a function that opens the file. In this function, we pass two parameters that are filename, mode. Where filename is the name of the file which we want to open. In the filename, we write file names with the path of the file like(C:\Users\Public\Music\Sample Music\abc.dat) where (C:\Users\Public\Music\Sample Music) is the path of the file and (abc.dat) is a file name. In the mode parameter, it provides the mode in which we want to open a file. There are two types of read mode and write mode. The default mode is read mode.

3 0
3 years ago
Katarina is deciding whether to buy a desktop or a laptop computer. What will most likely help Katarina make her decision?
Gnesinka [82]
Laptops are portable decides , while desktops remain in one plcae
4 0
3 years ago
Read 2 more answers
In 1-2 pages, identify a social networking technology and identify at least 10 security and/or privacy risks the technology has
algol13

Answer:

One of the biggest social media giants has faced many such security and privacy risks in the past 3 years. 10 are listed below:

1. No one can forget the New Zealand attack on the mosque, and it was telecast live via it. And that is certainly a security risk. And if someone is able to stream live, the AI is in question definitely as this cannot be telecast.

2. Can you forget the various US shooting cases in the past 5 years? And many out of them where telecast lives on it. Again the AI, and the authentication is in question.

3. Many evils have many times advertised itself through it, and that is a security risk. This put up the question on the Data Scientists of the company.

4. It's a huge data on it, and many users have been able to misuse it, and that is a security risk. This put up the question mark on the application of the Big Data.

5. Once, the UK parliament questioned it to sell the secret data, and that was a privacy risk.

6. An Engineer was caught negotiating to sell secret users data to a third party, and that is a privacy risk as well as a question on management technology, as its possible now to check these kind of frauds.

7. Its accounts have been hacked many times, as well as millions of user-profiles, were stolen. This is a security and privacy risk.

8. Its data is still not safe as evils have proved they can break the authentication. However, it has reacted well, and they look like being a safe destination now.

9. Once, someone from Russia was caught collecting a lot of data from it. That was a security and privacy risk. And surely if someone is uploading a lot of complicated and confidential data, must be checked through proper AI implementation.

10. In India too there have been claims that a lot of personal information during elections 2014 was sold. That was a security and data risk. And the data scientists were proved vulnerable again. Its quite sure hence, a lot of work has to be done in Data Science and Artificial intelligence still.

However, its owner is one of the finest souls on earth. He donated all his money when he was blessed with a child. Some out of his team cheated, and else some technology failure or the huge amount of data was the reason for the fault. However, other companies are also facing such problems. And hence, he cannot be blamed for this. And the company now definitely has recovered from the nightmare that they faced in the past 3 years.

Explanation:

The answer is self explanatory.

8 0
3 years ago
Why do computers need system software?
Marina86 [1]
<span>Computers don't need system software. System software is used to automate many tasks so the user can achieve more. Actually, one of the ideas of computer programming is to avoid needless repetition. The system software will prepare the computer for the user.</span>
5 0
3 years ago
Which of the following internet connection types is known to have a significantly higher latency than the others
Degger [83]
What are the options?
7 0
4 years ago
Other questions:
  • Write a recursive method public static String reverse(String str) that computes the reverse of a string. For example, reverse("f
    6·1 answer
  • A cracked tone (reluctor) ring will often cause what type of problem
    13·1 answer
  • Write a Python program that creates a dictionary containing course numbers and the room numbers of the rooms where the course me
    7·1 answer
  • The ability to keep web page visitors at your site is called _______.
    11·1 answer
  • In the United States, everyone is guaranteed work true or false
    13·1 answer
  • Which of the following types of cloud platforms would a webmail service offered to the general public be considered?
    9·1 answer
  • Which of the following options allow you to access a computer remotely? Check all that apply.
    10·1 answer
  • DNA structure can be described as a twisted ladder. Imagine you are climbing a model of DNA, just as if you were climbing a ladd
    10·2 answers
  • A form of encryption that uses only one key to encrypt and decrypt a file. This is a less
    14·1 answer
  • How do even do anything on Rblx Creator?? Will give branliest for whoever gives me the most info.
    13·1 answer
Add answer
Login
Not registered? Fast signup
Signup
Login Signup
Ask question!