Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.07.2010, 14:47   #11
kogemrka
Форумчанин
 
Аватар для kogemrka
 
Регистрация: 08.01.2010
Сообщений: 165
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
kogemrka, в целом - однозначно зачёт.
Просто хочу отметить. Если задача стоит так:

Т.е. 100 чисел случайном образом разместить в массиве.
Тогда можно использовать такой алгоритм: заполняется массив от 1 до 100, (for i:=1 to 100 do a[i] := i
а потом случайным образом перемешивается... код получается достаточно простым:
Код:
  for i:=1 to 100 do begin
    repeat 
       K := Random(100) + 1;
    until K<>i;
    tmp := a[k];
    a[k] := a[i];
    a[i] := tmp;
  end;
и всё.
Да, я тоже хотел написать об этом с самого начала, но потом мне пришло в голову, что здесь могут быть косяки с неравномерным разпределением.
Немного покопавшись в сети, нашёл подтверждение: http://mazanu.com/2008/11/blog-post_20.html

Хотя чуть далее по ссылки этот алгоритм немного модицифируется и всё становится так как надо.

Последний раз редактировалось kogemrka; 14.07.2010 в 15:11.
kogemrka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Случайные числа Toa Microsoft Office Excel 6 30.11.2013 18:45
Случайные числа severin Помощь студентам 8 02.02.2010 17:35
Случайные числа.... Teen4jump Общие вопросы Delphi 4 28.11.2008 23:52
Delphi - Случайные числа Albenous Помощь студентам 2 28.12.2007 22:34