Я хотел бы создать точки (x, y) равномерно на прямоугольнике. Сначала вы вводите minX и maxX и minY maxY, а затем генерируете (x, y) равномерно. Основной код, показанный ниже, является лучшим способом его достижения? (Мне это нужно, чтобы метод Монте-Карло, чтобы сделать сюжет)Создать точки (x, y) на прямоугольнике равномерно
#include <iostream>
#include <random>
double drand(const double min = 0., const double max = 1.)
{
return (max - min) * static_cast<double>(rand())/static_cast<double> (RAND_MAX)+min;
}
int main(int argc, char **argv)
{
for(unsigned short int i=0;i<1000;++i)
{
std::cout << "x " << drand(minX, maxX) << std::endl;
std::cout << "y " << drand(0., maxY) << std::endl;
}
return 0;
}
«Лучше» в каком смысле? – blackbird
Для начала установка семени может иметь смысл, но я иначе согласен с blackbird. –
Вам не нужны две петли? Один над x и внутренний цикл над y. – duffymo