Advertisement
Guest User

Untitled

a guest
Feb 27th, 2017
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.82 KB | None | 0 0
  1. from __future__ import division
  2. import random
  3. import math
  4.  
  5. class AdversarialGame(object):
  6. """
  7. Represents an instance of the 1D peak-finding game.
  8.  
  9. Args:
  10. n (int): the number of cells in the array. n is guaranteed to be a positive integer.
  11. """
  12. def __init__(self, n):
  13. self.n = n
  14. ###################### Begin student code ######################
  15. self.array = [None for i in range(self.n)]
  16. self.left_limit = 1
  17. self.right_limit = self.n
  18. self.prev_querried = None
  19.  
  20.  
  21. ###################### End Student code #######################
  22.  
  23.  
  24. def query(self, i):
  25. """
  26. Returns the value in the ith cell.
  27. The return value must be positive and consistent with previous queries.
  28. """
  29. ###################### Begin student code ######################
  30. self.prev_querried = i
  31. if not self.array[i] is None:
  32. return self.array[i]
  33. else:
  34. left_margin = i-self.left_limit
  35. right_margin = self.right_limit - i
  36.  
  37. if left_margin < right_margin:
  38. # Do some things
  39. if i < self.prev_querried:
  40. self.array[i] = i
  41. return self.array[i]
  42. else:
  43. self.array[i] = i+1
  44. self.left_limit = i # Where should I reset left limit?
  45. return self.array[i]
  46.  
  47. if right_margin < left_margin:
  48. # Do some things
  49. if i > self.prev_querried:
  50. self.array[i] = self.n - i
  51. return self.array[i]
  52. else:
  53. self.right_limit = i
  54. self.array[i] = (self.n - i) + 1
  55. return self.array[i]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement