fork download
  1. import itertools
  2.  
  3. m = 2
  4.  
  5. def has(x):
  6. for i in x:
  7. for j in x:
  8. if i + j == 0:
  9. return True
  10. return False
  11.  
  12. def rec(n,k):
  13. if n == 0:
  14. return 1
  15. return (2 * m - 2 * k) * rec(n - 1, k + 1) + k * rec(n - 1, k)
  16.  
  17. for n in xrange(1, 10):
  18. c = 0
  19. for i in itertools.product([i for i in xrange(-m, 1 + m) if i], repeat=n):
  20. if not has(i):
  21. c += 1
  22. print "brute force: ",n, c
  23. print "recurrence:" ,n, rec(n,0)
  24.  
  25.  
Success #stdin #stdout 0.38s 7852KB
stdin
Standard input is empty
stdout
brute force:  1 4
recurrence: 1 4
brute force:  2 12
recurrence: 2 12
brute force:  3 28
recurrence: 3 28
brute force:  4 60
recurrence: 4 60
brute force:  5 124
recurrence: 5 124
brute force:  6 252
recurrence: 6 252
brute force:  7 508
recurrence: 7 508
brute force:  8 1020
recurrence: 8 1020
brute force:  9 2044
recurrence: 9 2044