Tôi biết có một số câu hỏi trên tạo kết hợp các yếu tố, nhưng tôi nghĩ rằng điều này có một sự thay đổi nhất định để có giá trị một câu hỏi mới:Tất cả các kết hợp hợp lệ của các điểm, theo cách hiệu quả nhất (tốc độ)
Đối với một proejct thú cưng của tôi, tôi đã tính toán trước rất nhiều trạng thái để cải thiện hành vi thời gian chạy của ứng dụng sau này. Một trong những bước mà tôi phải vật lộn với điều này là:
Cho hai bộ dữ liệu N (cho phép gọi chúng từ đây trở đi, mặc dù chúng không nằm trong trường hợp sử dụng của tôi. Chúng gần đúng là X/Y) cần tính toán tất cả các kết hợp hợp lệ cho một quy tắc nhất định.
Nguyên tắc có thể là một cái gì đó giống như
- "Mỗi điểm bao gồm không bao gồm tất cả các điểm khác với cùng X phối hợp"
- "Mỗi điểm bao gồm không bao gồm tất cả các điểm khác với một X lẻ phối hợp"
Tôi hy vọng rằng điều này dẫn đến sự cải tiến trong quá trình lựa chọn, nhưng kỹ năng toán học của tôi chỉ được hồi sinh khi tôi nhập và tôi không thể đưa ra một thuật toán thanh lịch.
- Tập hợp các điểm (N) bắt đầu nhỏ, nhưng triển nhanh hơn 64 sớm (đối với "sử dụng miễn là bitmask" giải pháp)
- tôi đang làm điều này trong C#, nhưng giải pháp trong bất kỳ ngôn ngữ cần sử dụng tốt nếu nó giải thích ý tưởng cơ bản
Cảm ơn.
Cập nhật để đáp ứng với câu trả lời của Vlad:
Có lẽ ý tưởng của tôi để khái quát những câu hỏi là một xấu. Quy tắc của tôi ở trên đã được phát minh khi đang di chuyển và chỉ là trình giữ chỗ. Một nguyên tắc thực tế sẽ trông như thế này:
- "Mỗi điểm bao gồm không bao gồm tất cả các điểm khác trong triagle trên điểm chọn"
Bằng quy tắc đó và bằng cách chọn (2,1) Tôi muốn loại trừ
- (2,2) - trực tiếp trên
- (1,3) (2,3) (3,3) - dòng tiếp theo
- và vân vân
Vì vậy, các quy tắc được khắc phục, chứ không phải chung. Chúng không may phức tạp hơn các mẫu X/Y mà tôi đã đưa ra ban đầu.
Sẽ rất hữu ích nếu bạn có thể liệt kê tất cả các quy tắc thực tế bạn định sử dụng. – Nixuz