Александр
Александр

Вычисление координат, связанно с математикой.

У меня есть коробка (куб) со стороной A. В коробке однородно расположены атомы (1 атом на единицу объема, т. е. A = корень кубический из N, где N - количество атомов) . Количество атомов большое, около 10^7.
Для вычислений мне необходимо знать расстояние между парами атомов, для всех их комбинаций, пока расстояние не станет больше некоторой величины, например = 2.
Причем для разных атомов количество пар, комбинаций атомов может быть разным - для атома в центре коробки это все возможные комбинации, пока расстояние не станет больше 2, для атома возле края коробки - гораздо меньшее количество комбинаций, понятно почему.
Вопрос. Как мне наименее затратно организовать вычисление этих расстояний для атомов?
Посчитать статически все возможные расстояния и хранить их в массиве, а потом брать оттуда расстояния которые нужны для конкретного атома?
Или вычислять для каждого атома динамически все возможные расстояния?
Или какой-нибудь другой вариант?

ВС
Валерия Сизова

Допустим у вас заданна начальная точка (x1; y1;z1) и максимальная величина (расстояние) = D, тогда вы сможете просто перебрать те точки удовлетворяющие условию
sqrt((x1-x2)^2+(y1-y2)^2+(z1-z2)^2) меньше D
так как на единицу расстояния не может быть больше 2х атомов, то вам просто надо перебрать соседние D+1 клетку от начального атома и отобрать те которые подходят под уравнение выше.

Валентина Король
Валентина Король

и все же пар будет не мало
я бы задумался об использовании файла

если такая необходимость всплывет в процессе использования программы, то работа на время переделки встанит.
это мы проходили

Похожие вопросы
Помогите решит задачу по математике на вычисление скорости
Вычисление скорости.
Вычисление по формулам (Паскаль)
Высшая математика. Переход к полярным координатам
вычисление суммы. С/С++
Про программы, с углами связанные (вычисление с точностью до секунд)
Составьте программу для вычисления
Рисунок на плоскости координаты. по математике задали
Распределение вычислений между процессами
Delphi Код вычисление как???