Как организовать random на C?
Для инициализации массива 10*10, чтобы самому не вводить каждый элемент, а через random заполнить массив.
Для инициализации массива 10*10, чтобы самому не вводить каждый элемент, а через random заполнить массив.
Что-то вроде такого:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
/* Размер матрицы */
#define SIZE 10
void main()
{
int matrix[SIZE][SIZE];
srand(time(NULL));
for (int i = 0; i < SIZE; i++)
for (int j = 0; j < SIZE; j++)
matrix[i][j] = rand();
}
Вообще-то функции генерации псевдослучайной последовательности используют линейно-конгруэнтный генератор с заданными коэффициентами. У каждой фирмы эти коэффициенты свои. Для 32-битных версий эти генераторы генерируют последовательности с периодом повторения 2^32. Разрядность чисел можно изменить с 15 до 24 бит без существенной потери статистических свойств. А увеличить период можно только желательно перейдя на 64-битную арифметику. Но там надо найти уже новые значения коэффициентов. Для Вашей задачи это не принципиально. Но выражение "rand() возвращает псевдослучайные числа из маленького диапазона (0 - 32767), кроме того у него короткий цикл." в корне не верно!