Найти в Дзене

равномерное заполнение точками поверхности или объёма сферы

Эти две задачи часто нужно решить чтобы определить расстояние между ближайшими точками которыми равномерно заполнен объём или поверхность сферы
Например нам нужно
разместить равномерно миллион точек по поверхности Земли
и узнать среднее расстояние между ближайшими точками
import math # Задаем радиус Земли в метрах
R = 6371000 # радиус в метрах
N = 1000000 # количество точек # Вычисляем площадь, приходящуюся на одну точку
area_per_point = (4 * math.pi * R) / N print(area_per_point) # Вычисляем расстояние между точками
distance = math.sqrt(area_per_point)
print(distance)
=> миллион точек :
80.0603 площадь метров квадратных на точку
8.9476 расстояние между точек в метрах миллиард точек :
0.080 метров квадратных
0.2829 метров ** Теперь задача с объёмом сферы
и равномерно распределёнными в ней точками Размер сферы здесь у нас равен размеру Вселенной R = 46.5e9 # Радиус сферы в световых годах
ng = 600_000_000_000 # Количество точек n = 1 / 3 # П


Эти две задачи часто нужно решить чтобы определить расстояние между ближайшими точками которыми равномерно заполнен объём или поверхность сферы

Например нам нужно
разместить равномерно миллион точек по поверхности Земли
и узнать среднее расстояние между ближайшими точками


import math

# Задаем радиус Земли в метрах
R = 6371000 # радиус в метрах
N = 1000000 # количество точек

# Вычисляем площадь, приходящуюся на одну точку
area_per_point = (4 * math.pi * R) / N

print(area_per_point)

# Вычисляем расстояние между точками
distance = math.sqrt(area_per_point)
print(distance)


=>

миллион точек :
80.0603 площадь метров квадратных на точку
8.9476 расстояние между точек в метрах

миллиард точек :
0.080 метров квадратных
0.2829 метров

**

Теперь задача с объёмом сферы
и равномерно распределёнными в ней точками

Размер сферы здесь у нас равен размеру Вселенной

R = 46.5e9 # Радиус сферы в световых годах
ng = 600_000_000_000 # Количество точек

n = 1 / 3 # Параметр для вычисления расстояния

# Вычисление расстояния между точками
dt = (R**3 / ng)**n

print(f"Расстояние между точками: {dt:.2f} световых лет")

=>

итак - если число точек = 600 миллиардов тогда
среднее расстояние между точками = 5513184.6 световых лет

5,5 миллионов световых лет это примерное среднее расстояние между ближайшими разумными цивилизациями вселенной

Как видим задачи эти простые но они вычисляются во многих случаях когда у нас есть сеть равномерно распределённых точек на поверхности или внутри объёма сферы ..