Trong bài viết này, chúng ta sẽ tìm hiểu về giải pháp cho câu hỏi được đưa ra bên dưới.
Tuyên bố sự cố - Chúng tôi được cung cấp N đồng xu và chúng tôi muốn thực hiện sự thay đổi của những đồng xu đó sao cho có một nguồn cung cấp vô hạn cho mỗi giá trị trong S. Chúng tôi cần thể hiện rằng chúng tôi có thể thực hiện thay đổi bằng bao nhiêu cách bất kể thứ tự.
Chúng tôi sẽ sử dụng khái niệm lập trình động để giải quyết vấn đề nhằm giảm độ phức tạp về thời gian.
Bây giờ chúng ta hãy quan sát giải pháp trong việc triển khai bên dưới -
Ví dụ
# dynamic approach def count(S, m, n): # base case table = [[0 for x in range(m)] for x in range(n+1)] # for n=0 for i in range(m): table[0][i] = 1 # rest values are filled in bottom up manner for i in range(1, n+1): for j in range(m): # solutions including S[j] x = table[i - S[j]][j] if i-S[j] >= 0 else 0 # solutions excluding S[j] y = table[i][j-1] if j >= 1 else 0 # total table[i][j] = x + y return table[n][m-1] # main arr = [1, 3, 2, 4] m = len(arr) n = 5 print(“Number of coins:”,end=””) print(count(arr, m, n))
Đầu ra
Number of coins:6
Tất cả các biến được khai báo trong phạm vi cục bộ và các tham chiếu của chúng được hiển thị trong hình trên.
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu về cách chúng ta có thể tạo Chương trình Python để thay đổi tiền xu