首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >什么时候DVD的标志会出现拐角处?

什么时候DVD的标志会出现拐角处?
EN

Code Golf用户
提问于 2022-09-05 19:33:47
回答 7查看 9.8K关注 0票数 51

我最喜欢的一个迷因是弹跳DVD标志。然而,愚蠢但极其令人满意的是,一个DVD的标志一直在屏幕上弹跳,如果你碰巧看过这个屏幕保护程序,你很可能会焦急地等待这个标志准确地击中角落。

我知道其中的一部分乐趣是等待,但让我们尝试预测什么时候DVD的标志将击中屏幕的角落。

任务

给定徽标的尺寸和初始坐标以及网格的大小,计算徽标第一次到达任何角落的时间。

规范

  • 在此挑战中,徽标将由矩形表示,屏幕将由网格表示。网格将永远比标志更大。
  • 标志的开始运动将是东南方向。徽标只向对角线移动。水平速度和垂直速度是相同的,保持不变。
  • 这个挑战的时间单位表示为一个网格方格在某个方向上的移动。
  • 如果徽标已经开始在一个角落,预期的答案是0(徽标已经接触到一个角落)。
  • 徽标的初始坐标表示徽标的左上角.
  • 起始徽标位置不会扩展到网格之外。
  • 对于这一挑战,您可以假设徽标最终会碰到一个拐角。
  • 输入是灵活的,阅读它,你认为适合你。
  • 不允许有标准的漏洞。

示例

在下面的示例中,徽标的初始坐标是i=(1,1),网格的大小是g=(20,20),dvd徽标的尺寸是d=(10,5)

29 units of time走到了一个拐角处。

测试用例

代码语言:javascript
复制
Format: 
i , g , d --> output

#Special cases: logo starting in the four corners
(10,15), (20,20), (10,5) --> 0
(10,0), (20,20), (10,5) --> 0
(0,0), (20,20), (10,5) --> 0
(0,15), (20,20), (10,5) --> 0
#Special cases: logo starting glued to all walls
(0,7), (30,20), (7,12) --> 161
(7,0), (30,20), (7,12) --> 16
(23,3), (30,20), (7,12) --> 69
(11,8), (30,20), (7,12) --> 104
# Other test cases
(1,1), (20,20), (10,5) --> 29
(11,8), (24,50), (7,12) --> 448
(11,8), (50,24), (7,12) --> 376
(5,8), (48,39), (31,3) --> 352

这是密码-高尔夫,所以最短的答案以字节为单位获胜!

EN

回答 7

Code Golf用户

发布于 2022-09-05 20:05:09

Wolfram语言(数学),27字节

代码语言:javascript
复制
ChineseRemainder[-#,#2-#3]&

在网上试试!

这是最小的t\ge0,以至于i+t\equiv0\pmod{g-d}

票数 42
EN

Code Golf用户

发布于 2022-09-05 20:06:35

Python,59字节

-1感谢@xnor

代码语言:javascript
复制
f=lambda i,I,g,G,d,D:i%(g-d)+I%(G-D)and-~f(i+1,I+1,g,G,d,D)

在网上试试!

基于这样的观察,我们可以“展开”盒子,让标志直线飞行。

票数 22
EN

Code Golf用户

发布于 2022-09-05 20:25:45

维沙尔,12字节

代码语言:javascript
复制
λ‹?+??-ḊA;ṅ‹

在网上试试! 测试套件。

类似于@att的回答。

代码语言:javascript
复制
λ‹?+??-ḊA;ṅ‹
λ        ;ṅ   # Find the first positive integer t>0 such that:
 ‹?+   ḊA     #  t-1+x for each x in i are both divisible by, respectively...
    ??-       #  g[0]-d[0] and g[1]-d[1].
           ‹  # Subtract one from this.
票数 6
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/251708

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档