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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2008, 18:35   #1
MaXXX
 
Аватар для MaXXX
 
Регистрация: 31.08.2007
Сообщений: 6
Хорошо Функция Randomize

Всем доброго времени суток.

Суть вопроса в следующем: В Делфи имеется функция Randomize при помощи которой можно генерировать случайные значения

// например
//var a: integer;
// randomize;
//a := Random (100);
//

Так вот, нужно создать уникальный алгоритм, который бы мог создать массив значений переменного типа, и при этом ни одно из значений не повторяется дважды, так же ограничить длину выходного массива


Код:
function Generate(kolV_, kolB_: integer);
var
  b, c: integer;
begin
  for b := 1 to kolB_ do
  begin
    Randomize;
    for v := 1 to kolV_ do
    begin
      // присваивание переменной случайное число
      c := Random (Count);
      txt_RES.Lines.Add(IntToStr(c));
    end;
  end;
end;
MaXXX вне форума Ответить с цитированием
Старый 22.09.2008, 18:54   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Ну во-первых randomize не функция, а процедура, а во-вторых этот "уникальный алгоритм" здесь на форуме почти у каждого есть не в одном варианте.
Например если нужно заполнить массив от 1 до 50 числами от 1 до 50, чтобы они не повторялись, можно применить такую прцедуру:
Код:
type TMass=array [1..255] of Byte;
Var Mass :Tmass;
      i,n: Byte;
procedure MyRandom(n:integer;var a:Tmass);
var m,i,j,x:integer;f:Boolean;
begin
m:=2;
Randomize;
for i := 1 to n do
  begin
    repeat
      f:=false;
      x:=Random(n+1);
      for j:=1 to m do
      if a[j]=x then f:=true;
    until f=false;
    a[i]:=x;
    m:=m+1;
  end;
end;
puporev вне форума Ответить с цитированием
Старый 23.09.2008, 11:42   #3
MaXXX
 
Аватар для MaXXX
 
Регистрация: 31.08.2007
Сообщений: 6
По умолчанию

спасибо большое за присланный код ...
MaXXX вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Randomize )Игнат( Паскаль, Turbo Pascal, PascalABC.NET 13 03.02.2009 16:51
функция sergei64_89 Общие вопросы C/C++ 2 25.05.2008 16:48
Функция Chr() Fantom Общие вопросы Delphi 4 12.05.2008 12:45
Функция в c++ JOFRIF Помощь студентам 1 08.05.2008 18:30
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50