DPChange (M, c, d): bestNumCoins [0] - 0 for m - 1 to M bestNumcoins (m] = inf for i - 1 to d if m >- c[i] if bestNumcoins (m-c[i]] + 1 < bestNumcoins (m] bestNumCoins (m] = bestNumCoins (m-c[i]] + 1 return bestNumCoins (M) a) Convert this pseudocode to Python. b) What is the runtime of this algorithm?
DPChange (M, c, d): bestNumCoins [0] - 0 for m - 1 to M bestNumcoins (m] = inf for i - 1 to d if m >- c[i] if bestNumcoins (m-c[i]] + 1 < bestNumcoins (m] bestNumCoins (m] = bestNumCoins (m-c[i]] + 1 return bestNumCoins (M) a) Convert this pseudocode to Python. b) What is the runtime of this algorithm?
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
Related questions
Question
as attached
a and b, thank you
![### DPChange(M, c, d) Pseudocode
This pseudocode is used to find the minimum number of coins needed to make change for a given amount \( M \) using a list of coin denominations.
#### Pseudocode Explanation:
1. **Initialization:**
- `bestNumCoins[0] = 0`: Set the base case for making change for 0 amount.
2. **Outer Loop (1 to M):**
- For each amount \( m \) from 1 to \( M \), do the following:
- Initialize `bestNumCoins[m] = inf` (infinity) to represent initially an impossible large number of coins.
3. **Inner Loop (1 to d):**
- Iterate over each coin denomination.
- **Check Condition:**
- If the current amount \( m \) is greater than or equal to the coin denomination \( c[i] \):
- Compare and update the best number of coins:
```
if bestNumCoins[m-c[i]] + 1 < bestNumCoins[m]:
bestNumCoins[m] = bestNumCoins[m-c[i]] + 1
```
- This checks if using the current coin \( c[i] \) results in fewer coins than previously computed for amount \( m \).
4. **Return Result:**
- Return `bestNumCoins[M]` which contains the minimum number of coins needed for amount \( M \).
### Questions:
a) **Convert this pseudocode to Python.**
```python
def DPChange(M, c):
bestNumCoins = [float('inf')] * (M + 1)
bestNumCoins[0] = 0
for m in range(1, M + 1):
for coin in c:
if m >= coin:
if bestNumCoins[m - coin] + 1 < bestNumCoins[m]:
bestNumCoins[m] = bestNumCoins[m - coin] + 1
return bestNumCoins[M]
```
b) **What is the runtime of this algorithm?**
The runtime of this algorithm is \( O(M \cdot d) \) where \( M \) is the amount for which we are making change and \( d \) is the number of different coin denominations. This is because for each amount up to \( M \), we iterate through each denomination.](/v2/_next/image?url=https%3A%2F%2Fcontent.bartleby.com%2Fqna-images%2Fquestion%2F12c18db6-f6e8-4129-b933-2f1b3972f7de%2F0619b341-f7c0-415c-91fd-cf3775ef7b99%2F16x3xla_processed.png&w=3840&q=75)
Transcribed Image Text:### DPChange(M, c, d) Pseudocode
This pseudocode is used to find the minimum number of coins needed to make change for a given amount \( M \) using a list of coin denominations.
#### Pseudocode Explanation:
1. **Initialization:**
- `bestNumCoins[0] = 0`: Set the base case for making change for 0 amount.
2. **Outer Loop (1 to M):**
- For each amount \( m \) from 1 to \( M \), do the following:
- Initialize `bestNumCoins[m] = inf` (infinity) to represent initially an impossible large number of coins.
3. **Inner Loop (1 to d):**
- Iterate over each coin denomination.
- **Check Condition:**
- If the current amount \( m \) is greater than or equal to the coin denomination \( c[i] \):
- Compare and update the best number of coins:
```
if bestNumCoins[m-c[i]] + 1 < bestNumCoins[m]:
bestNumCoins[m] = bestNumCoins[m-c[i]] + 1
```
- This checks if using the current coin \( c[i] \) results in fewer coins than previously computed for amount \( m \).
4. **Return Result:**
- Return `bestNumCoins[M]` which contains the minimum number of coins needed for amount \( M \).
### Questions:
a) **Convert this pseudocode to Python.**
```python
def DPChange(M, c):
bestNumCoins = [float('inf')] * (M + 1)
bestNumCoins[0] = 0
for m in range(1, M + 1):
for coin in c:
if m >= coin:
if bestNumCoins[m - coin] + 1 < bestNumCoins[m]:
bestNumCoins[m] = bestNumCoins[m - coin] + 1
return bestNumCoins[M]
```
b) **What is the runtime of this algorithm?**
The runtime of this algorithm is \( O(M \cdot d) \) where \( M \) is the amount for which we are making change and \( d \) is the number of different coin denominations. This is because for each amount up to \( M \), we iterate through each denomination.
Expert Solution

This question has been solved!
Explore an expertly crafted, step-by-step solution for a thorough understanding of key concepts.
This is a popular solution!
Trending now
This is a popular solution!
Step by step
Solved in 2 steps

Recommended textbooks for you

Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON

Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science

Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning

Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON

Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science

Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning

Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning

Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education

Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY