Advertisement
Guest User

Untitled

a guest
May 30th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.25 KB | None | 0 0
  1. import random
  2. import timeit
  3.  
  4. MAXI = 100000
  5. numbers = list(range(1, MAXI + 1))
  6. excluded_nr = random.randint(1, MAXI + 1)
  7. numbers.remove(excluded_nr)
  8. random.shuffle(numbers)
  9.  
  10. def first_method():
  11. bits = [False] * MAXI
  12. for nr in numbers:
  13. bits[nr-1] = True
  14. print 'Missing number is %d' % (bits.index(False) + 1)
  15.  
  16. def second_method():
  17. total_sum = MAXI * (MAXI+1) / 2
  18. for nr in numbers:
  19. total_sum -= nr
  20. print 'Missing number is %d' % total_sum
  21.  
  22. def third_method():
  23. sorted_numbers = sorted(numbers)
  24. for i in range(1, MAXI):
  25. if sorted_numbers[i-1] != i:
  26. print 'Missing number is %d' % i
  27. return
  28.  
  29. def fourth_method():
  30. total = 0
  31. for nr in numbers:
  32. if nr % 2 == 0:
  33. total -= nr
  34. else:
  35. total += nr
  36. print 'Missing number is %d' % abs(total + MAXI/2)
  37.  
  38.  
  39. def fifth_method():
  40. all_xor = 0
  41.  
  42. for nr in numbers:
  43. all_xor ^= nr
  44.  
  45. print 'Missing number is %d' % (all_xor ^ MAXI)
  46.  
  47.  
  48. methods = [
  49. first_method,
  50. second_method,
  51. third_method,
  52. fourth_method,
  53. fifth_method
  54. ]
  55.  
  56. for method in methods:
  57. start = timeit.default_timer()
  58. method()
  59. elapsed = timeit.default_timer() - start
  60. print 'Elapsed time: %.4f' % elapsed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement