执行摘要
给定代表两个向量及其各自“权重”的输入,则产生的输出也代表这些向量的加权总和。
挑战
输入将包含以下字符的一行或多行:
- 正好出现一次数字0,它表示二维平面中的原点;
- 正好是另外两个数字(1-9;可以是或可以不是相同的数字),它们相对于原点的位置代表矢量,并且其值代表这些矢量的权重;
- 一些“背景字符”。求解器可以选择特定的背景字符;例如,我将选择“。” (主要是为了人类可读性)。或者,背景字符可以是任何看起来像空白的东西。
(求解器可以选择输入是单个多行字符串还是单行字符串数组。)
例如,输入
....2
.0...
...3.
表示权重为2的坐标(3,1)处的向量,权重为3的坐标(2,-1)处的向量。
输出应与输入几乎相同,并进行以下更改:
- 由求解器选择的“结果字符”,将被添加到由输入矢量的加权和指定的位置(等效地,在输入矢量的适当线性组合的位置);
- 在同一张图片中,需要多少背景字符以适合原点,两个输入向量和输出向量。如果需要,可以包含额外的背景字符;唯一的限制是,如果背景字符是可见字符,则整个输出的形状必须是矩形,并且每个不代表矢量的字符都必须是背景字符。(如果将空格用作背景字符,则无需强制执行这些约束。)
(通常,如果我们有一个权重为a的向量(v,w)和权重为b的第二向量(x,y),则它们的加权总和为a(v,w)+ b(x,y)=(av + bx,aw + by)。)
在前面的示例中,适当的线性组合为2 *(3,1)+ 3 *(2,-1)=(12,-1)。如果我们使用“ X”作为结果字符,那么输出看起来像
....2.........
.0............
...3.........X
要么
................
...2............
0...............
..3.........X...
................
................
通常的代码高尔夫评分:最短的答案(以字节为单位)获胜。
输入和输出示例
如果使用空格,则上面的输入看起来像
2
0
3
和输出看起来像
2
0
3 X
前导/尾随空格字符/行无关。如果读者看不见它们,那很好。(话虽如此,在其余示例中,我将回过头使用“。”作为背景字符,以使其更易于阅读。)
如果两个向量的权重均为1,则结果将看起来像平行四边形:输入
.1.
...
1.0
导致输出
X.1.
....
.1.0
请注意,如果输入向量是共线的,则此平行四边形可以退化:
0.1..1
导致输出
0.1..1.X
结果向量有可能等于输入向量之一或原点。在这种情况下,它只会覆盖输入字符。例如,输入
..2.0.1...
产生输出
..X.0.1...
(在输入和/或输出中,前导和尾随期间可以删除)。输入
.....3
......
...0..
......
......
2.....
产生输出
.....3
......
...X..
......
......
2.....
最后,输入
90
.8
产生输出
........90
.........8
..........
..........
..........
..........
..........
..........
X.........