Как организовать random на C?

Рейтинг: 2Ответов: 2Опубликовано: 27.05.2011

Для инициализации массива 10*10, чтобы самому не вводить каждый элемент, а через random заполнить массив.

Ответы

▲ 2Принят

Что-то вроде такого:

#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();
}
▲ 2

Вообще-то функции генерации псевдослучайной последовательности используют линейно-конгруэнтный генератор с заданными коэффициентами. У каждой фирмы эти коэффициенты свои. Для 32-битных версий эти генераторы генерируют последовательности с периодом повторения 2^32. Разрядность чисел можно изменить с 15 до 24 бит без существенной потери статистических свойств. А увеличить период можно только желательно перейдя на 64-битную арифметику. Но там надо найти уже новые значения коэффициентов. Для Вашей задачи это не принципиально. Но выражение "rand() возвращает псевдослучайные числа из маленького диапазона (0 - 32767), кроме того у него короткий цикл." в корне не верно!