21xrx.com
2024-12-22 16:52:53 Sunday
登录
文章检索 我的文章 写文章
C++生成n个随机点——如何在计算机上生成随机坐标点?
2023-07-13 20:43:44 深夜i     --     --
C++ 随机点 生成 计算机 坐标点

随机坐标点是计算机科学中非常常见的概念,它可以用于模拟真实的物理场景、生成随机测试数据等。在本文中,我们将介绍如何使用C++语言在计算机上生成n个随机点的方法。

首先,我们需要了解的是,随机坐标点是由x坐标和y坐标组成的。在C++语言中,我们可以使用rand()函数来生成随机数。但是,rand()函数只能生成0到RAND_MAX之间的一个随机整数。如果要生成指定范围内的随机数,我们就需要进行一些复杂的计算。下面是一个实现生成指定范围内随机数的函数:


int random(int min, int max) {

  return rand() % (max - min + 1) + min;

}

在这个函数中,我们通过rand()函数生成一个0到max-min之间的随机整数,然后再加上min得到最终的随机数。这样,我们就可以生成指定范围内的随机数了。

接下来,我们可以使用一个for循环来生成n个随机点。在循环体中,我们可以分别使用random()函数生成x坐标和y坐标,然后将它们添加到一个vector中。下面是一个生成n个随机点的函数:


vector<pair<int, int>> generateRandomPoints(int n, int minX, int maxX, int minY, int maxY) {

  vector<pair<int, int>> points;

  for (int i = 0; i < n; i++) {

    int x = random(minX, maxX);

    int y = random(minY, maxY);

    points.push_back(make_pair(x, y));

  }

  return points;

}

在这个函数中,我们使用vector保存生成的随机点。make_pair()函数用于将x和y坐标合并到一起形成一个二元组。最后,函数返回保存所有随机点的vector。

最后,我们可以使用上述函数来生成n个随机点,并将它们输出到屏幕上:


int main() {

  int n = 10;

  int minX = 0, maxX = 100;

  int minY = 0, maxY = 100;

  vector<pair<int, int>> points = generateRandomPoints(n, minX, maxX, minY, maxY);

  for (auto p: points) {

    cout << "(" << p.first << "," << p.second << ")" << endl;

  }

  return 0;

}

在这个程序中,我们生成了10个在x和y坐标范围都在[0, 100]之间的随机点,并将它们依次输出到屏幕上。程序的输出结果如下所示:


(98,92)

(16,12)

(89,61)

(24,70)

(75,35)

(15,66)

(86,12)

(94,17)

(13,91)

(19,6)

通过上述方法,我们可以很方便地在计算机上生成指定数量的随机点,为后续的计算和分析提供数据支持。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复