Advertisement
Guest User

Untitled

a guest
Apr 18th, 2015
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.74 KB | None | 0 0
  1. # coding: utf-8
  2.  
  3. from math import floor
  4. from random import random
  5.  
  6.  
  7. def fill_array(N, M):
  8. """
  9. :param N: matrix length
  10. :param M: randomizer multiplier, should be more, than N
  11. """
  12. n = N
  13. m = M
  14. if n > m:
  15. n, m = m, n # swap values in case of N is bigger than M
  16.  
  17. result = [] # Could be any iterable. dict/set are better due to O(1) search complexity
  18.  
  19. diff = m - n
  20.  
  21. for e in range(N):
  22. val = int(floor(random()*m)) % diff
  23.  
  24. if val not in result:
  25. result.append(val)
  26. else:
  27. # if generated value is in resulting array already, use diff instead
  28. val = diff
  29. result.append(val)
  30. diff += 1
  31.  
  32. return len(set(result)) == N
  33.  
  34.  
  35. if __name__ == "__main__":
  36. print fill_array(100, 110)
  37. print fill_array(10, 100)
  38. print fill_array(100, 101)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement