Advertisement
bero_0401

Derangements

Jul 13th, 2024
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 0.56 KB | Source Code | 0 0
  1. def derangement_dp(n):
  2.     # Base cases
  3.     if n == 1:
  4.         return 0
  5.     if n == 2:
  6.         return 1
  7.    
  8.     # Create a list to store results of subproblems
  9.     derangements = [0] * (n + 1)
  10.    
  11.     # Initialize base cases
  12.     derangements[1] = 0
  13.     derangements[2] = 1
  14.    
  15.     # Fill the entries in a bottom-up manner
  16.     for i in range(3, n + 1):
  17.         derangements[i] = (i - 1) * (derangements[i - 2] + derangements[i - 1])
  18.    
  19.     return derangements[n]
  20.  
  21. # Test the function
  22. for i in range(1, 11):
  23.     print(f"D({i}) = {derangement_dp(i)}")
  24.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement