All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Just Math > Calculus
Unit square overlap I (Posted on 2023-05-12) Difficulty: 3 of 5
The overlap of two unit squares is a rectangle with area 1/16.

Find the minimum distance between their centers.

No Solution Yet Submitted by Jer    
No Rating

Comments: ( Back to comment list | You must be logged in to post comments.)
Solution solution | Comment 3 of 7 |
The intuitively obvious solution turned out to be wrong.

Since the shape of the overlap is a rectangle, no rotations other than 90 degrees are possible, so ignore rotations.  Other shapes would be much more complicated.  But given a rectangle, intuitively it seems the two squares are side by side then pushed together until they overlap by 1/16 of a unit.
The distance between the centers is 15/16 = 0.9375.  I expected this to be the answer.

If instead the 2 squares start oriented diagonally, touching only at one vertex, then one is moved at a 45 degree angle, the overlap will be a (1/4) by (1/4) square and the distance would be (3/4)*√2 =~ 1.06

So far, it intuitively seems that 15/16 is the answer.

But ...
Suppose the second square starts side by side with the first square; it is moved up a distance t then horizontally to make a rectangular overlap area = 1/16
Say the lower left corner of square 1 is at (0,0) and that of square 2 starts at (1,0).  After moving, that corner of square 2 is at ( (1 - 1/(16-16t)) , t )
or ( (15-16t)/(16-16t) , t)
The dist^2 = (225 - 480t + 256t^2)/(256 - 512t + 256t^2) + t^2
dist^2 = (225 - 480t + 256t^2 + 256^2 - 512^3 + 256t^4) / (16-16t)^2

Running the code below finds a minimum for distance. Since several early runs showed that t was about .06, instead of checking all t values from 0 to 1, I just checked up to .1.

Minimum distance found:  0.9354143466934853 
(less than 15/16)
-----
def dist(t):
    return  ((225 - 480*t + 256*t**2)/(256 - 512*t + 256*t**2) + t**2)**.5

mint = 1000
mind = 1000
for i in range(10000000):
    t = i/10000000
    d = dist(t)
    if d < mind:
        mind = d
        mint = t

print(mint,mind)

min t value    min distance
0.06698729 0.9354143466934853

Edited on May 14, 2023, 12:48 pm
  Posted by Larry on 2023-05-12 15:06:00

Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (9)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2024 by Animus Pactum Consulting. All rights reserved. Privacy Information