Dưới đây là một bài tập thú vị:Tìm một ray mà cắt một đa giác nhiều lần càng tốt
Hãy P là một đơn giản, nhưng không nhất thiết phải lồi, đa giác và q một điểm tùy ý không nhất thiết phải ở P.
Thiết kế một thuật toán hiệu quả để tìm phân đoạn đường có nguồn gốc từ q giao cắt số cạnh tối đa của P.
Nói cách khác, nếu đứng tại điểm q, bạn nên nhắm súng theo hướng nào? sẽ đi qua số bức tường lớn nhất?
Một viên đạn qua đỉnh của P chỉ được ghi có cho một bức tường.
Thuật toán O (n log n) là có thể. n là số đỉnh hoặc cạnh, vì nó là một đa giác, số cạnh gần bằng với số đỉnh.
Đây là suy nghĩ của tôi:
Connect q với tất cả các đỉnh (giả sử có N đỉnh) tại P đầu tiên. Sẽ có N dòng, hoặc cặp N-1.
Đường quay cuối cùng phải nằm giữa các cặp này. Vì vậy, chúng ta phải tìm cặp có chứa số lượng cạnh lớn nhất.
Tôi không nghĩ giải pháp này là O (n log n).
Bất kỳ ý tưởng nào?
Ồ, tôi không biết. Trong tò mò, n là gì?Số cạnh? – Jeremy
Tôi tin rằng câu hỏi này có liên quan: http://stackoverflow.com/questions/4446112/search-for-interval-overlap-in-list-of-intervals Bạn có thể biểu diễn từng phân đoạn dòng trong P dưới dạng một cặp giá trị radian một tia từ q phải nằm giữa. –
Một hình ảnh sẽ ổn. –