问题陈述:Sherlock and Moving Tiles
TL; DR :给定 2 正方形;边长
上下文:我正在花费大量时间从事数学技能工作。我认为通过识别问题何时与数学相关,它可以改善我处理编码问题的方式。我正在浏览 Hackerrank & KhanAcademy 目前用于学习目的。
问题:我无法可视化给定问题的公式。我有答案,也看了编辑的答案,但我仍然无法完全掌握它。也许,我忘记了数学知识中的一些基本知识。问题的难度级别设置为简单。所以,我有点尴尬,因为我无法解决相对简单的数学问题。我希望你不会反对我。 :)
无论如何,用于解决此问题的公式如下: -
t = Math.sqrt(2) * (L - Math.sqrt(qi)) / Math.abs(S2-S1)
我可以获得最终公式的细分/向上推导吗?即为了达到该公式,我需要考虑什么?我理解它的一部分,但似乎无法将它们组合成一个确定的答案。
谢谢你的帮助,伙计们。非常感谢任何帮助!
答案 0 :(得分:1)
区域qi
是由两个正方形的交点形成的正方形对角线的平方的一半。我们只会在这里查看对角线,因为正方形沿着y=x
移动。因此,我们将考虑速度较慢的方块的右上角(我们不需要检查这个,这将通过使用分母的绝对值来覆盖),我们称之为A
和我们称之为B
的更快方块的左下角。
来自d1
的{{1}}距离为A
。
来自d1 = s1*t + L*sqrt(2)
的{{1}}距离为d2
。
我们知道A
。
代替d2 = s2*t
和qi = [(x1 - x2)^2] / 2
,
x1
。
双方x2
并解决(s1*t + L*sqrt(2) - s2*t)^2 = 2*qi
后,我们最终会:
sqrt
为了确保分子和分母都是正数,从分子和分母中取t
个共同点。
t = sqrt(2) * (sqrt(qi) - L) / (s1 - s2)
我们在这里做的假设是-1
。为了使其适用于所有情况,只需在分母中取其差值的绝对值即可。