Генератор векторов по 3 элемента :)
Обычно такие программки-секундки я не публикую, но сейчас сделаю исключение, так ещё могут понадобиться подобные варианты заданий.
Задача состоит в том, чтобы сгенерировать наборы по три вектора с именами A, B, C из трёх целочисленных элементов каждый.
Может быть задан разброс допустимых значений элементов, например, от -10 до 10 включительно.
Все три элемента каждого вектора должны быть различны между собой, чтобы не возникало матриц неполного ранга в дальнейших расчётах :)
Программка пишет векторы в файл data.txt
текущей папки в виде
A=(-8,9,-9) B=(-10,7,6) C=(4,6,-10) A=(0,2,-2) B=(7,-1,-10) C=(0,-1,1) ...
и т.д. Проверено и выполнено в консоли Visual Studio 2015.
#include <iostream> #include <fstream> #include <cstdlib> #include <ctime> using namespace std; int main() { ofstream f("data.txt"); srand(time(0)); int a,b,c; char *names[] = {"A","B","C"}; const int diap = 20; //разброс от нуля в обе стороны for (int i = 0; i < 30; i++) { //всего 30 наборов (A,B,C) for (int j=0; j<3; j++) { a = rand() % (diap+1) - diap / 2; do { b = rand() % (diap + 1) - diap / 2; } while (b==a); do { c = rand() % (diap + 1) - diap / 2; } while (c==b || c==a); f << names[j] << "=(" << a << "," << b << "," << c << ")" << endl; } f << endl; } f.close(); cout << "OK"; cin.get(); return 0; }
20.02.2019, 16:57 [1588 просмотров]