quintopia đã đăng ở đây một thách thức để tính toán các hệ số đa thức (một số văn bản ở đây được sao chép từ đó). Có một thuật toán thú vị để tính hệ số đa thức mod 2.
Cho một danh sách các số, k 1 , k 2 , ..., k m , xuất ra phần dư của hệ số đa thức:
giảm mod 2. Sau đây thuật toán thực hiện điều này một cách hiệu quả: cho mỗi k i , tính mở rộng nhị phân của k i , nghĩa là tìm một ij như vậy mà mỗi một ij là 1 hoặc 0 và
Nếu có bất kỳ j sao cho a rj = a sj = 1 với r ≠ s, thì hệ số đa thức mod 2 liên quan là 0, nếu không thì hệ số đa thức mod 2 là 1.
Bài tập
Viết chương trình hoặc hàm lấy số m , k 1 , k 2 , ..., k m và xuất hoặc trả về hệ số đa thức tương ứng. Chương trình của bạn có thể tùy chọn lấy m làm đối số bổ sung nếu cần.
Các số này có thể được nhập theo bất kỳ định dạng nào mà một lượt thích, ví dụ được nhóm thành danh sách hoặc được mã hóa theo dạng đơn, hoặc bất cứ thứ gì khác, miễn là tính toán thực tế của hệ số đa phương thức được thực hiện bởi mã của bạn chứ không phải quá trình mã hóa.
Đầu ra có thể là bất kỳ giá trị trung thực nào nếu hệ số đa cực là lẻ và bất kỳ giá trị falsey nào nếu hệ số đa cực là chẵn.
Không được phép xây dựng để tính toán hệ số đa cực.
Tiêu chuẩn áp dụng.
Chấm điểm
Đây là mã golf: Giải pháp ngắn nhất trong byte thắng.
Ví dụ:
Để tìm hệ số đa cực của 7, 16 và 1000, chúng tôi mở rộng nhị phân từng loại:
Vì không có cột nào có nhiều hơn 1, nên hệ số đa cực là số lẻ và do đó chúng ta sẽ tạo ra một số thứ thật.
Để tìm hệ số đa cực của 7, 16 và 76, chúng tôi mở rộng nhị phân từng loại:
Vì cả 76 và 7 đều có số 4 trong khai triển nhị phân của chúng, nên hệ số đa cực là chẵn và do đó chúng tôi tạo ra giá trị falsey.
Các trường hợp thử nghiệm:
Input: [2, 0, 1]
Output: Truthy
Input: [5,4,3,2,1]
Output: Falsey
Input: [1,2,4,8,16]
Output: Truthy
Input: [7,16,76]
Output: Falsey
Input: [7,16,1000]
Output: Truthy
Input: [545, 1044, 266, 2240]
Output: Truthy
Input: [1282, 2068, 137, 584]
Output: Falsey
Input: [274728976, 546308480, 67272744, 135004166, 16790592, 33636865]
Output: Truthy
Input: [134285315, 33849872, 553780288, 544928, 4202764, 345243648]
Output: Falsey
==
cho sự bình đẳng có thể đã lưu một byte nếu sự thật và chim ưng được phép lật.