Computer Networking: A Top-Down Approach (7th Edition)
Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN: 9780133594140
Author: James Kurose, Keith Ross
Publisher: PEARSON
Bartleby Related Questions Icon

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.
expand button
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
Check Mark
Knowledge Booster
Background pattern image
Recommended textbooks for you
Text book image
Computer Networking: A Top-Down Approach (7th Edi...
Computer Engineering
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:PEARSON
Text book image
Computer Organization and Design MIPS Edition, Fi...
Computer Engineering
ISBN:9780124077263
Author:David A. Patterson, John L. Hennessy
Publisher:Elsevier Science
Text book image
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:9781337569330
Author:Jill West, Tamara Dean, Jean Andrews
Publisher:Cengage Learning
Text book image
Concepts of Database Management
Computer Engineering
ISBN:9781337093422
Author:Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:Cengage Learning
Text book image
Prelude to Programming
Computer Engineering
ISBN:9780133750423
Author:VENIT, Stewart
Publisher:Pearson Education
Text book image
Sc Business Data Communications and Networking, T...
Computer Engineering
ISBN:9781119368830
Author:FITZGERALD
Publisher:WILEY