Hackerrank - 两个正方形重叠的时间

时间:2016-06-29 08:23:28

标签: math

问题陈述Sherlock and Moving Tiles

TL; DR :给定 2 正方形;边长 ,放置在xy平面上,两个方块沿着 y = x 移动(沿着正x和y) )速度 S1 S2 ,两个方格的重叠区域时间是多少?等于 qi

嘿,大家。

上下文:我正在花费大量时间从事数学技能工作。我认为通过识别问题何时与数学相关,它可以改善我处理编码问题的方式。我正在浏览 Hackerrank & KhanAcademy 目前用于学习目的。

问题:我无法可视化给定问题的公式。我有答案,也看了编辑的答案,但我仍然无法完全掌握它。也许,我忘记了数学知识中的一些基本知识。问题的难度级别设置为简单。所以,我有点尴尬,因为我无法解决相对简单的数学问题。我希望你不会反对我。 :)

无论如何,用于解决此问题的公式如下: -

t = Math.sqrt(2) * (L - Math.sqrt(qi)) / Math.abs(S2-S1)

我可以获得最终公式的细分/向上推导吗?即为了达到该公式,我需要考虑什么?我理解它的一部分,但似乎无法将它们组合成一个确定的答案。

谢谢你的帮助,伙计们。非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

区域qi是由两个正方形的交点形成的正方形对角线的平方的一半。我们只会在这里查看对角线,因为正方形沿着y=x移动。因此,我们将考虑速度较慢的方块的右上角(我们不需要检查这个,这将通过使用分母的绝对值来覆盖),我们称之为A和我们称之为B的更快方块的左下角。

来自d1的{​​{1}}距离为A

来自d1 = s1*t + L*sqrt(2)的{​​{1}}距离为d2

我们知道A

代替d2 = s2*tqi = [(x1 - x2)^2] / 2x1

双方x2并解决(s1*t + L*sqrt(2) - s2*t)^2 = 2*qi后,我们最终会:

sqrt

为了确保分子和分母都是正数,从分子和分母中取t个共同点。

t = sqrt(2) * (sqrt(qi) - L) / (s1 - s2)

我们在这里做的假设是-1。为了使其适用于所有情况,只需在分母中取其差值的绝对值即可。