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

помогите пожалуйста с заданием. создать вектор пар на 10 точек vector pair вещественные значения точек должны быть случайными из диапазона (-100,100).


Ответы (1 шт):

Автор решения: Maggot

Возьмите генератор псевдослучайных чисел - std::mt19937_64

и дистрибьюшен - std::uniform_int_distributio

Заведите вектор пар и генерируйте туда данные через метод вектора push_back

#include <iostream>
#include <cstdint>
#include <vector>
#include <random>

int GenRandomUInt(int lowB, int upperB) {
  static std::random_device r_dev{};
  static std::mt19937_64 mt_engine(r_dev());
  static std::uniform_int_distribution<> u_int_d(lowB, upperB);

  return static_cast<uint64_t>(u_int_d(mt_engine));
}

int main() {
  std::vector<std::pair<int, int>> dots;

  for (int i{0x0}; i < 0xA; ++i) {
      dots.push_back({GenRandomUInt(-100, 100), GenRandomUInt(-100, 100)});
  }

  for (const auto& pair : dots) {
      std::cout << "x : " << pair.first << " y : " << pair.second << std::endl;
  }

  return EXIT_SUCCESS; 
}
→ Ссылка