Sản phẩm vô hướng tối thiểu
Cảm hứng cho vấn đề golf mã này là từ cuộc thi kẹt mã của Google . Tiền đề đằng sau vấn đề này, được đưa vào đầu vào của hai vectơ có độ dài khác nhau, tìm vô hướng tối thiểu có thể. Một vô hướng có thể được tìm thấy bằng cách sử dụng công thức sau đây:
x1 * y1 + x2 * y2 + ... + xn * yn
Tuy nhiên, vấn đề là có thể tìm thấy nhiều giá trị cho vô hướng tùy thuộc vào thứ tự của các chữ số trong trường hợp đầu vào (xem bên dưới). Mục tiêu của bạn là xác định giải pháp số nguyên vô hướng tối thiểu có thể bằng cách cắm các số trường hợp đầu vào vào phương trình và giải cho nó. Bạn chỉ có thể sử dụng mỗi số trong đầu vào một lần và phải sử dụng tất cả các số.
Cho phép tôi cung cấp một ví dụ với các vectơ sau.
Đầu vào
3
1 3 -5
-2 4 1
Đầu ra
-25
Số nguyên đầu tiên trên dòng biểu thị số lượng số, n, trong mỗi vectơ. Trong trường hợp này, chúng ta có ba số trong mỗi vector.
Số n có thể thay đổi theo từng trường hợp thử nghiệm, nhưng sẽ luôn có hai vectơ.
Trong ví dụ đầu vào, sản phẩm vô hướng tối thiểu sẽ là -25.
(-5 * 4) + (1 * 1) + (3 * -2) = 25
Quy tắc
- Bạn chỉ có thể sử dụng mỗi số nguyên trong cả hai vectơ một lần.
- Bạn phải sử dụng tất cả các số nguyên trong các vectơ.
- Đầu ra của bạn chỉ phải bao gồm sản phẩm cuối cùng
- Tôi sẽ chọn giải pháp có số lượng mã ít nhất, tuân theo tất cả các thông số kỹ thuật được liệt kê ở trên, bằng bất kỳ ngôn ngữ nào!
Gợi ý: Bạn không cần phải xử lý vấn đề này, trừ khi nó làm cho mã của bạn ngắn hơn. Có một phương pháp cụ thể liên quan đến việc tìm vô hướng kéo dài tối thiểu :).