cuốn sách gpt4 ai đã làm

c++ - Tìm các đỉnh 3D trùng lặp từ mảng

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 05:56:44 28 4
mua khóa gpt4 Nike

Tôi có một loạt các điểm. Mỗi điểm có một vị trí (x, y, z) và một vectơ (xn, yn, zn), tổng cộng có 6 nhân đôi. Có tính đến dung sai dấu phẩy động, tôi cần tìm các phần tử duy nhất trong mảng này và loại bỏ các mục trùng lặp.

Cách đơn giản và hiệu quả để đạt được nó là gì? Tôi muốn xây dựng một số cấu trúc phân vùng không gian như BSP hoặc KD-Tree. Nhưng tôi nghĩ nên có cách nào đó tối ưu hơn, như từ điển băm thông minh hay gì đó.

Vì vậy, tôi đang tìm kiếm lời khuyên, nên đi theo con đường nào và có thư viện C++ nhẹ nào đã triển khai nó không?

câu trả lời hay nhất

Cách dễ nhất là làm tròn đến epsilon gần nhất và đưa số điểm vào phạm vi số nguyên (nhân mọi thứ với 1/epsilon). Một khi chúng là băm số nguyên hoạt động tốt (std::unordered_set,std::unordered_map). Điều này có thể bỏ sót một số trường hợp 2 điểm gần nhau nhưng được làm tròn khác nhau. Bạn có thể khắc phục vấn đề này bằng cách làm tròn và tính toán các xung đột với một trong hai kết quả.

如果您使用 std::bộ/std::bản đồ, lưu ý rằng chúng có độ phức tạp truy cập log(N) (so với các hằng số có phiên bản băm). Tại thời điểm này, bạn sử dụng BSP hoặc KD-Tree đều tốt như nhau (miễn là bạn đã có một số thư viện triển khai chúng).

Về c++ - tìm các đỉnh 3D trùng lặp từ một mảng, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/34203821/

28 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress