Рубрики

Программа Python для обмена монет

При заданном значении N, если мы хотим внести изменения в N центов, и у нас есть бесконечный запас каждой из монет с достоинством S = {S1, S2, .., Sm}, сколько способов мы можем внести изменение? Порядок монет не имеет значения.

Например, для N = 4 и S = {1,2,3} существует четыре решения: {1,1,1,1}, {1,1,2}, {2,2}, {1, 3}. Таким образом, выходное значение должно быть 4. Для N = 10 и S = {2, 5, 3, 6} существует пять решений: {2,2,2,2,2}, {2,2,3,3}, {2,2,6}, {2,3,5} и {5,5}. Поэтому на выходе должно быть 5.

питон

# Динамическое программирование Python для реализации Coin
# Изменить проблему

def count(S, m, n):

    # Нам нужно n + 1 строк для построения таблицы

    # снизу вверх, используя базовое значение 0

    # case (n = 0)

    table = [[0 for x in range(m)] for x in range(n+1)]

  

    # Заполните записи для 0 значения регистра (n = 0)

    for i in range(m):

        table[0][i] = 1

  

    # Заполните остальные записи таблицы снизу вверх

    for i in range(1, n+1):

        for j in range(m):

  

            # Количество решений, включая S [j]

            x = table[i - S[j]][j] if i-S[j] >= 0 else 0

  

            # Количество решений, исключая S [j]

            y = table[i][j-1] if j >= 1 else 0

  

            # общее количество

            table[i][j] = x + y

  

    return table[n][m-1]

  
# Программа драйвера для проверки вышеуказанной функции

arr = [1, 2, 3]

m = len(arr)

n = 4

print(count(arr, m, n))

  
# Этот код предоставлен Bhavya Jain

питон

# Динамическое программирование Python для реализации Coin
# Изменить проблему

def count(S, m, n):

  

    # table [i] будет хранить количество решений для

    # значение я. Нам нужно n + 1 рядов, так как таблица построена

    # снизу вверх, используя базовый вариант (n = 0)

    # Инициализировать все значения таблицы как 0

    table = [0 for k in range(n+1)]

  

    # Базовый случай (если задано значение 0)

    table[0] = 1

  

    # Собрать все монеты одну за другой и обновить таблицу [] значений

    # после индекса больше или равно значению

    # выбранная монета

    for i in range(0,m):

        for j in range(S[i],n+1):

            table[j] += table[j-S[i]]

  

    return table[n]

  
# Программа драйвера для проверки вышеуказанной функции

arr = [1, 2, 3]

m = len(arr)

n = 4

x = count(arr, m, n)

print (x)

  
# Этот код предоставлен Афзалом Ансари

Пожалуйста, обратитесь к полной статье о динамическом программировании | Установите 7 (Смена монеты) для более подробной информации!

Рекомендуемые посты:

Программа Python для обмена монет

0.00 (0%) 0 votes