Я пытаюсь найти способ выбора случайных точек решетки в плоскости x
, y
.Предлагается использовать следующий код:
//////////////////////
// Pick random site //
//////////////////////
int m=int(rand()*1.0/RAND_MAX*L*L);
int mx=m%L; //x coordinate of m site
int my=int(m*1.0/L); // y coordinate of m site
Другими словами: m
- это случайное целое число от 0
до L^2
.Координата x
равна m mod L, это число от 0
до L
.y
устанавливается в качестве ближайшего целого числа к m/L
, которое является целым числом от 0
до L
.
Кажется, это работает, но в L^2
работает, мы с большей вероятностью будем искать одну часть системы x
, y
, чем другую?Может ли кто-нибудь объяснить, почему и существует ли альтернативный метод выбора случайных координатных точек на плоскости x
, y
, который равномерно выбирает пространство?