Здравствуйте.
Необходимо генерировать 2-х мерный массив из 0 и 1. Использую стандартный random (rand, srand). Хочу посчитать, сколько выпадет нулей и единиц из 100 генераций массива, и сколько будет повторов аналогичных комбинаций. Запускаю программу, генерируются один в один копии без отличий.
С++, Linux.
#include <iostream>
#include <cstdlib>
#include <ctime>
#define m_size 3
using namespace std;
void randM()
{
srand((unsigned int)time(0));
int mas[m_size][m_size];
int countZ = 0;
int countO = 0;
for (int i = 0; i < m_size; i++)
{
for (int j = 0; j < m_size; j++)
{
mas[i][j] = rand() % 2;
if (mas[i][j] == 0)
countZ++;
else
countO++;
}
}
for (int i = 0; i < m_size; i++)
{
for (int j = 0; j < m_size; j++)
{
cout << mas[i][j];
}
cout << endl;
}
cout << "countZ: " << countZ << endl;
cout << "countO: " << countO << endl;
}
int main()
{
//system("clear");
setlocale(LC_ALL, "Russian");
int repeat = 0;
while(repeat < 3)
{
randM();
repeat++;
cout << endl;
}
return 0;
}
Была мысль выбрасывать цифры от 0 до 9 и переводить их в двоичный код, заменяю и дополняя 0 и 1.
Прикрутить urandom пока не получилось. Прошу помочь разобраться.