Tôi đang làm việc trên một dự án (C++, opengl), nơi tôi cần phải có rất nhiều hạt ảnh hưởng đến nhau, nếu tôi đúng, điều này được gọi là vấn đề. Có ai biết giải pháp nào có cho các thuật toán như thế này không.Thuật toán/giải pháp nbody nhanh (với opengl/C++/??)
Tôi biết thuật toán túp lều barnes và có thể tôi có thể nhìn xung quanh openCL, mặc dù tôi không chỉ tự hỏi nếu bạn có thể sử dụng các giải pháp khác.
Mã mà tôi sẽ tạo ra sẽ có rất nhiều:
for(int i = 0; i < num_particles; ++i) {
for(int j = i+1, j < num_particles; ++j)
dist = distance(particles[i],particles[j]);
if(dist > limit) {....}
}
}
Kind regards, Pollux
Cảm ơn Staffan! Bạn có thể biết một số cuốn sách hay về cấu trúc dữ liệu như thế này không? – pollux
Khám phá [Hình học tính toán] (http://www.amazon.com/Computational-Geometry-Applications-Mark-Berg/dp/3642096816/ref=sr_1_1?ie=UTF8&s=books&qid=1280350460&sr=8-1) bằng Đánh dấu de Berg et al. Đó là một giới thiệu tốt về hình học tính toán, với các công cụ như Kd-tree, quadtrees và delaunay triangulations. Bạn có thể duyệt TOC trên amazon. – Staffan