Управляющее резюме
Учитывая входные данные, представляющие два вектора и их соответствующие «веса», производят выходные данные, которые также представляют взвешенную сумму этих векторов.
Вызов
Ввод будет состоять из одной или нескольких строк следующих символов:
- ровно одно вхождение цифры 0, которая представляет начало координат в двумерной плоскости;
- ровно две другие цифры (1-9; может или не может быть одной и той же цифрой), чьи позиции относительно начала координат представляют векторы, а значения представляют веса, прикрепленные к этим векторам;
- некоторое количество "фоновых персонажей". Решатель может выбрать определенный фоновый символ; например, я выберу "." (в основном для удобства чтения). Альтернативно, фоновые символы могут быть чем угодно, которые выглядят как пустое пространство.
(Решатель может выбрать, является ли ввод одной строкой из нескольких строк или массивом из одной строки.)
Например, вход
....2
.0...
...3.
представляет вектор с координатами (3,1) с весом 2 и вектор с координатами (2, -1) с весом 3.
Вывод должен быть почти таким же, как ввод, со следующими изменениями:
- «символ результата», выбранный решателем, который должен быть добавлен в позиции, заданной взвешенной суммой входных векторов (эквивалентно, в позиции, которая является подходящей линейной комбинацией входных векторов);
- столько же фоновых символов, сколько необходимо, чтобы соответствовать исходному, двум входным векторам и выходному вектору на одном и том же изображении. Дополнительные символы фона могут быть включены при желании; единственное ограничение состоит в том, что, если символ фона является видимым символом, тогда весь вывод должен быть прямоугольной формы, и каждый символ, не представляющий вектор, должен быть символом фона. (Если в качестве фоновых символов используется пустое пространство, эти ограничения применять не нужно.)
(В общем, если у нас есть один вектор (v, w) с весом a и второй вектор (x, y) с весом b, их взвешенная сумма будет a (v, w) + b (x, y) = (av +) BX, ав + с).)
В предыдущем примере подходящей линейной комбинацией является 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.........