input: Write a function to optimize a given Python function by iterating over a range of parameters and finding the combination that yields the highest score. The function should return the best parameters.
  def optimize_function(fn, params):
   best_score = 0
   best_params = None
   for a in range(params.a - 10, params.a + 10):
   for b in range(params.b - 10, params.b + 10):
   for c in range(params.c - 10, params.c + 10):
   score = fn(Params(a, b , c))
   if score > best_score:
   best_score = score
   best_params = {
   'a': a,
   'b': b,
   'c': c
   }
   return best_params
  assert optimize_function(get_result, Params(a=1, b=2, c=3))['a']==1
  assert optimize_function(get_result, Params(a=1, b=2, c=3))['b']==2
  assert optimize_function(get_result, Params(a=1, b=2, c=3))['c']==3
  assert optimize_function(get_result, Params(a=5, b=5, c=5))['a']==5
  assert optimize_function(get_result, Params(a=5, b=5, c=5))['b']==5
  assert optimize_function(get_result, Params(a=5, b=5, c=5))['c']==5
output: def optimize_function(fn, params):
   best_score = 0
   best_params = None
   for a in range(params.a - 10, params.a + 10):
   for b in range(params.b - 10, params.b + 10):
   for c in range(params.c - 10, params.c + 10):
   score = fn(Params(a, b , c))
   if score > best_score:
   best_score = score
   best_params = {
   'a': a,
   'b': b,
   'c': c
   }
   return best_params