Tóm tắt
Cho đầu vào đại diện cho hai vectơ và "trọng số" tương ứng của chúng, tạo ra đầu ra cũng đại diện cho tổng trọng số của các vectơ đó.
Thử thách
Đầu vào sẽ bao gồm một hoặc nhiều dòng ký tự sau:
- chính xác một lần xuất hiện của chữ số 0, đại diện cho gốc tọa độ trong mặt phẳng hai chiều;
- chính xác hai chữ số khác (1-9; có thể có hoặc không cùng một chữ số), có vị trí liên quan đến gốc đại diện cho vectơ và có giá trị đại diện cho các trọng số gắn với vectơ;
- một số "nhân vật nền". Người giải có thể chọn một nhân vật nền cụ thể; ví dụ: tôi sẽ chọn "." (chủ yếu cho khả năng đọc của con người). Thay phiên, các nhân vật nền có thể là bất cứ thứ gì trông giống như không gian trống.
(Bộ giải có thể chọn đầu vào là một chuỗi nhiều dòng đơn hay một chuỗi các chuỗi một dòng.)
Ví dụ: đầu vào
....2
.0...
...3.
đại diện cho một vectơ tại tọa độ (3,1) với trọng số 2 và một vectơ tại tọa độ (2, -1) với trọng số 3.
Đầu ra phải gần giống với đầu vào, với các thay đổi sau:
- một "ký tự kết quả", được chọn bởi người giải, được thêm vào vị trí được chỉ định bởi tổng trọng số của các vectơ đầu vào (tương đương, tại vị trí là tổ hợp tuyến tính thích hợp của các vectơ đầu vào);
- càng nhiều ký tự nền cần thiết để phù hợp với nguồn gốc, hai vectơ đầu vào và vectơ đầu ra trong cùng một hình ảnh. Nhân vật nền có thể được bao gồm nếu muốn; hạn chế duy nhất là, nếu ký tự nền là ký tự hiển thị, thì toàn bộ đầu ra phải có hình chữ nhật và mọi ký tự không đại diện cho vectơ phải là ký tự nền. (Nếu không gian trống được sử dụng làm ký tự nền, thì các ràng buộc này không cần phải được thi hành.)
(Nói chung, nếu chúng ta có một vectơ (v, w) có trọng số a và vectơ thứ hai (x, y) có trọng số b, tổng trọng số của chúng là a (v, w) + b (x, y) = (av + bx, aw + by).)
Trong ví dụ trước, tổ hợp tuyến tính thích hợp là 2 * (3,1) + 3 * (2, -1) = (12, -1). Nếu chúng ta sử dụng "X" làm ký tự kết quả, thì đầu ra có thể trông như
....2.........
.0............
...3.........X
hoặc là
................
...2............
0...............
..3.........X...
................
................
Điểm golf-code thông thường : câu trả lời ngắn nhất, tính bằng byte, thắng.
Ví dụ đầu vào và đầu ra
Nếu không gian trống được sử dụng, đầu vào trên sẽ trông như
2
0
3
và đầu ra sẽ như thế nào
2
0
3 X
Các ký tự / dòng khoảng trắng hàng đầu / dấu là không liên quan; nếu chúng vô hình với người đọc, thì tốt thôi. (Như đã nói, trong phần còn lại của các ví dụ tôi sẽ quay lại sử dụng "." Cho ký tự nền, để dễ đọc hơn.)
Nếu cả hai vectơ có trọng số 1, thì kết quả sẽ giống như hình bình hành: đầu vào
.1.
...
1.0
dẫn đến đầu ra
X.1.
....
.1.0
Lưu ý hình bình hành này có thể suy biến nếu các vectơ đầu vào được cộng tuyến: đầu vào
0.1..1
dẫn đến đầu ra
0.1..1.X
Có thể cho vectơ kết quả bằng một trong các vectơ đầu vào hoặc gốc; trong trường hợp này, nó chỉ đơn giản ghi đè ký tự đầu vào. Ví dụ: đầu vào
..2.0.1...
mang lại sản lượng
..X.0.1...
(trong đó ở đầu vào và / hoặc đầu ra, các khoảng thời gian đầu và cuối có thể bị xóa). Đầu vào
.....3
......
...0..
......
......
2.....
mang lại sản lượng
.....3
......
...X..
......
......
2.....
Cuối cùng, đầu vào
90
.8
mang lại sản lượng
........90
.........8
..........
..........
..........
..........
..........
..........
X.........