Методы получения случайных чисел?
1) аппаратный
2) табличный
3) алгоритмический
с 1 и 3 вроде ясно, а какие такие табличные методы.. это что такое? пример есть у кого-нибудь?
Однако немного подумав, я придумал следующее решение.
К примеру у нас есть массив с числами от 1 до N, нам надо получить массив, состоящий из тех же чисел, но разбросанных в произвольном порядке.
Если решать задачу в лоб, то хренова туча времени уйёдт на поиск ответа на вопрос - "а есть ли во втором массиве такой-то элемент?"
Поэтому мы пойдём другим путём. Небольшая иллюстрация решения:
Пусть N=7, тогда массив
A Содержит 1 2 3 4 5 6 7
Вызовем функцию (Pascal) random(7)+1, к примеру она возвратила нам 3, тогда мы меняем последнее число и третье местами - получается A [1,2,7,4,5,6,3]
А теперь мы должны вызвать random(6)+1 и поменять местами полученный элемент массива и его 6-ой элемент, то есть к примеру могло получиться А[6,2,7,4,1,3] ту же опреацию мы будем проделывать и далее, пока у нас аргумент функции random не станет равным 2. тогда можно прерывать итерации цикла.