Tôi đã đưa ra một số điểm (tọa độ 2D) và muốn tìm vòng tròn nhỏ nhất, bao gồm tất cả các điểm này. Các thuật toán không phải là rất hiệu quả (trong khi nó sẽ được tốt đẹp tự nhiên).Làm cách nào để tìm vòng tròn tối thiểu bao gồm một số điểm nhất định?
Trả lời
Liên kết rất thú vị nhưng kết quả được đề cập không có cập nhật. Thuật toán của Nimrod Megiddo từ năm 1983 là một giải pháp thời gian tuyến tính nhưng có nhiều thuật toán thực tế hơn, giống như của Welzl, xem [câu trả lời này] (http://stackoverflow.com/a/17329529/734191). – Hbf
Đây là cái gọi là nhỏ kèm theo Balls vấn đề (trong trường hợp của bạn, nhỏ bao quanh vòng), còn được gọi là Miniball. Có một số thuật toán và triển khai trên mạng cho vấn đề này - tất cả những điều sau đây là các giải pháp tuyến tính thời gian (ví dụ, cho n quả bóng, họ chạy trong O (n) nếu bạn xem xét các khía cạnh d cố định, d = 2 trong trường hợp của bạn):
Đối với 2D và 3D, Gärtner's implementation có lẽ là nhanh nhất.
Để có kích thước cao hơn (lên tới 10.000, nói), hãy xem https://github.com/hbf/miniball, đó là việc triển khai thuật toán của Gärtner, Kutz và Fischer (lưu ý: Tôi là một trong những đồng tác giả).
Đối với các kích thước rất, rất cao, lõi-bộ (xấp xỉ) thuật toán sẽ nhanh hơn.
Lưu ý: Nếu bạn đang tìm kiếm một thuật toán để tính toán kèm theo hình cầu nhỏ nhất của lĩnh vực, bạn sẽ tìm thấy một C++ thực hiện trong Computational Geometry Algorithms Library (CGAL). (Bạn không cần sử dụng tất cả CGAL; chỉ cần trích xuất các tệp nguồn và tiêu đề bắt buộc.)
- 1. tối thiểu vs đỉnh tối thiểu bao gồm
- 2. Thuật toán để tìm số hình chữ nhật tối thiểu bao gồm các phần tử nhất định trong mảng 2d
- 3. Làm thế nào để tìm tổng số cây bao trùm tối thiểu trong biểu đồ?
- 4. Làm thế nào để tìm giá trị lớn nhất và tối thiểu trong một mảng các số nguyên trong Perl?
- 5. Ma trận khu vực tối thiểu bao gồm
- 6. Tìm điểm mà tổng khoảng cách để thiết lập các điểm khác là tối thiểu
- 7. Khám phá một thuật toán để tìm chuỗi tối thiểu chứa một số mặt hàng nhất định
- 8. LISP tối thiểu nhất?
- 9. Chỉ bao gồm một số loại tệp nhất định khi tìm kiếm trong Visual Studio
- 10. Tìm điểm trên vòng tròn có điểm trung tâm, bán kính và độ
- 11. Tìm tất cả các điểm chung cho hai vòng tròn
- 12. Làm cách nào để tìm ra số ký tự tối thiểu để tạo palindrome?
- 13. Cách nhanh nhất để xác định số không tối thiểu khác
- 14. Cách tốt nhất để tìm tối đa và tối thiểu của hai giá trị
- 15. Làm thế nào để làm tròn một số trong một phạm vi nhất định?
- 16. Javascript: Làm tròn lên và xuống 5 gần nhất, sau đó tìm một mẫu số chung
- 17. tìm đa giác lồi có chứa nhỏ nhất với một số lượng nhất định các điểm
- 18. Làm cách nào để tính điểm trên chu vi vòng tròn?
- 19. Tiêu đề hình tròn C++ bao gồm
- 20. Làm cách nào để có điều kiện chỉ bao gồm mã nếu trên một số phiên bản iOS nhất định?
- 21. Làm cách nào để có được số tối thiểu/tối đa?
- 22. Làm cách nào để lấy giá trị nổi mà không bao gồm ký hiệu số mũ
- 23. Đếm tổng số điểm trong 2 vòng tròn
- 24. tìm số tối đa & tối thiểu từ 2 số trong một mảng
- 25. Làm thế nào để bạn bao gồm/loại trừ một loại tệp nhất định trong Subversion?
- 26. Cách tìm chi phí tối thiểu để liên kết hai bộ điểm
- 27. Giá trị tối thiểu và tối đa của UIDatePicker có thể bao gồm thời gian không?
- 28. Tìm số tối thiểu và tối đa trong trăn
- 29. Có cách nào để yêu cầu git chỉ bao gồm một số tệp nhất định thay vì bỏ qua một số tệp nhất định không?
- 30. Thuật toán để tìm điểm tổng khoảng cách tối thiểu từ các vị trí
Bản sao có thể có của [Vòng tròn nhỏ nhất bao phủ các điểm đã cho trên mặt phẳng 2D] (http://stackoverflow.com/questions/4901535/nhỏ nhất-vòng tròn-mà-bao-cho-điểm-trên-2d-máy bay); có một câu trả lời giống hệt nhau bởi cùng một người dùng và câu hỏi khác có từ ngữ tốt hơn, theo ý kiến của tôi. Câu trả lời chỉ có liên kết trong phiên bản này cũng không tuyệt vời ... – Benjamin