





'''simple docstring'''






from math import isclose, sqrt
def        UpperCamelCase__				(		lowerCAmelCase							,     lowerCAmelCase							,     lowerCAmelCase  ):





      """simple docstring"""


      _lowerCAmelCase												=							point_y / 4 / point_x
      _lowerCAmelCase												=							2 * normal_gradient / (1 + normal_gradient * normal_gradient)
      _lowerCAmelCase												=							(1 - normal_gradient * normal_gradient) / (
          1 + normal_gradient * normal_gradient
      )
      _lowerCAmelCase												=							(sa - ca * incoming_gradient) / (ca + sa * incoming_gradient)

      # to find the next point, solve the simultaeneous equations:
      # y^2 + 4x^2 = 100
      # y - b = m * (x - a)
      # ==> A x^2 + B x + C = 0
      _lowerCAmelCase												=							outgoing_gradient**2 + 4
      _lowerCAmelCase												=							2 * outgoing_gradient * (point_y - outgoing_gradient * point_x)
      _lowerCAmelCase												=							(point_y - outgoing_gradient * point_x) ** 2 - 1_00

      _lowerCAmelCase												=							(
          -linear_term - sqrt(linear_term**2 - 4 * quadratic_term * constant_term  )
      ) / (2 * quadratic_term)
      _lowerCAmelCase												=							(
          -linear_term + sqrt(linear_term**2 - 4 * quadratic_term * constant_term  )
      ) / (2 * quadratic_term)

      # two solutions, one of which is our input point
      _lowerCAmelCase												=							x_minus if isclose(__lowerCamelCase							,     __lowerCamelCase  ) else x_plus
      _lowerCAmelCase												=							point_y + outgoing_gradient * (next_x - point_x)

      return next_x, next_y, outgoing_gradient
def        UpperCamelCase__				(		lowerCAmelCase = 1.4							,     lowerCAmelCase = -9.6  ):





      """simple docstring"""


      _lowerCAmelCase												=							0
      _lowerCAmelCase												=							first_x_coord
      _lowerCAmelCase												=							first_y_coord
      _lowerCAmelCase												=							(10.1 - point_y) / (0.0 - point_x)

      while not (-0.01 <= point_x <= 0.01 and point_y > 0):
            _lowerCAmelCase												=							next_point(__lowerCamelCase							,     __lowerCamelCase							,     __lowerCamelCase  )
            num_reflections += 1

      return num_reflections


if __name__ == "__main__":
      print(F"""{solution() = }""")













'''simple docstring'''






def        UpperCamelCase__				(		lowerCAmelCase							,     lowerCAmelCase  ):





      """simple docstring"""


      if len(lowerCAmelCase  ) != len(lowerCAmelCase  ):
            raise ValueError("""String lengths must match!"""  )

      _lowerCAmelCase												=							0

      for chara, chara in zip(lowerCAmelCase							,     lowerCAmelCase  ):
            if chara != chara:
                  count += 1

      return count


if __name__ == "__main__":
      import doctest

      doctest.testmod()






