Hippity hoppity, abolish loopity def frog_collision_time(frog1, frog2): A frog hopping along on the infinite two-dimensional lattice grid of integers is represented as a 4-tuple of the form (sx, sy, dx, dy) where (sx, sy) is its starting position at time zero, and (dx, dy) is its constant direction vector for each hop. Time advances in discrete integer steps 0, 1, 2, 3, ... so that each frog makes one hop at every tick of the clock. At time t, the position of that frog is given by the formula (sx+t*dx, sy+t*dy) that can be nimbly evaluated for any t. Given two frogs frog1 and frog2 that are guaranteed to initially stand on different squares, return the time when both frogs hop into the same square. If these two frogs never simultaneously arrive at the same square, return None. This function should not contain any loops whatsoever. The result should be calculated using conditional statements and integer arithmetic. Perhaps the best way to get cracking is to first solve a simpler version of this problem with one-dimensional frogs restricted to hop along the onedimensional line of integers. Once you get that function working correctly, including all its possible edge cases such as either one or both frogs jumping axis-aligned or just staying forever in the same place, use that method to solve for t separately for the x- and y-dimensions in the original problem. Combine these two one-dimensional answers into the final answer. frog1 frog2 Expected result (0, 0, 0, 2) (0, 10, 0, 1) 10 (10, 10, -1, 0) (0, 1, 0, 1) None (0, -7, 1, -1) (-9, -16, 4, 2) 3 (-28, 9, 9, -4) (-26, -5, 8, -2) None (-28, -6, 5, 1) (-56, -55, 9, 8) 7 (620775675217287, -1862327025651882, -3, 9) (413850450144856, 2069252250724307, -2, -10) 206925225072431
Hippity hoppity, abolish loopity
def frog_collision_time(frog1, frog2):
A frog hopping along on the infinite two-dimensional lattice grid of integers is represented as a 4-tuple of the form (sx, sy, dx, dy) where (sx, sy) is its starting position at time zero, and (dx, dy) is its constant direction
Given two frogs frog1 and frog2 that are guaranteed to initially stand on different squares, return the time when both frogs hop into the same square. If these two frogs never simultaneously arrive at the same square, return None.
This function should not contain any loops whatsoever. The result should be calculated using conditional statements and integer arithmetic. Perhaps the best way to get cracking is to first solve a simpler version of this problem with one-dimensional frogs restricted to hop along the onedimensional line of integers. Once you get that function working correctly, including all its possible edge cases such as either one or both frogs jumping axis-aligned or just staying forever in the same place, use that method to solve for t separately for the x- and y-dimensions in the original problem. Combine these two one-dimensional answers into the final answer.
frog1 | frog2 | Expected result |
(0, 0, 0, 2) | (0, 10, 0, 1) | 10 |
(10, 10, -1, 0) | (0, 1, 0, 1) | None |
(0, -7, 1, -1) | (-9, -16, 4, 2) | 3 |
(-28, 9, 9, -4) | (-26, -5, 8, -2) | None |
(-28, -6, 5, 1) | (-56, -55, 9, 8) | 7 |
(620775675217287, -1862327025651882, -3, 9) | (413850450144856, 2069252250724307, -2, -10) |
206925225072431 |
Trending now
This is a popular solution!
Step by step
Solved in 4 steps with 2 images