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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2009, 14:27   #1
vadmaruschak
Пользователь
 
Регистрация: 12.09.2009
Сообщений: 13
Лампочка Можно ли подсчитать функцию random?

А именно... Я узнал, что работает рандом по формуле, и генерирует следущие числа в зависимости от предыдущих. Можно ли сделать так, чтобы самому писать числа, а рандом чтобы генерировал следущее число в зависимости от введенных мной чисел?
vadmaruschak вне форума Ответить с цитированием
Старый 03.11.2009, 14:42   #2
Lime
Форумчанин
 
Аватар для Lime
 
Регистрация: 10.02.2009
Сообщений: 815
По умолчанию

А разве это будет random ?
Lime вне форума Ответить с цитированием
Старый 03.11.2009, 14:45   #3
Lemo
Форумчанин
 
Аватар для Lemo
 
Регистрация: 13.10.2008
Сообщений: 714
Радость

Заносит в массив, числа рендомом, в указаном вами диапазоне...
Код:
write('n=');
readln(n);
////////////
for i:=1 to 10 do
a[i]:=random(n)+1;
Отписал, но наверно не то.... =(
Lemo вне форума Ответить с цитированием
Старый 03.11.2009, 14:48   #4
DeKot
Участник клуба
 
Аватар для DeKot
 
Регистрация: 12.08.2008
Сообщений: 1,977
По умолчанию

Код:
var limit: integer; // Ваше число для рандома
                val: integer;  // рандомная переменная
begin
  Randomize;
  val:= Random(limit);
end;
И не сомневайся даже ... отдых - кайф, работа - лажа!
DeKot вне форума Ответить с цитированием
Старый 03.11.2009, 15:12   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Для этого есть переменная RandSeed которая если не ошибаюсь есть базовая для генерации очередного числа. Его и выставляй
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.11.2009, 15:25   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

можно.
присваивайте значение "начальной затравки" своё число и получите одну и ту же последовательность псевдослучайных чисел.

сравните:
случайная последовательность.
Код:
  Randomize;
  for i:=1 to 10 do
    Memo1.Lines.Append(IntToStr(Random(100)));
и
Код:
  RandSeed := 100;
  for i:=1 to 10 do
    Memo1.Lines.Append(IntToStr(Random(100)));
это даст последовательность:
13 99 1 23 14 ....
разумеется, измените число, изменится и последовательность.

___________________________________ ____________________________
Цитата:
Сообщение от Stilet
Для этого есть переменная RandSeed которая если не ошибаюсь есть базовая для генерации очередного числа.
Вы абсолютно правы, коллега. к сожалению не увидел Вашего поста, когда писал ответ...

Последний раз редактировалось Serge_Bliznykov; 03.11.2009 в 15:28.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.11.2009, 15:36   #7
vadmaruschak
Пользователь
 
Регистрация: 12.09.2009
Сообщений: 13
По умолчанию

А можно полный код программки на примере?)) Просто я только учусь на первом курсе, и еще не очень понимаю...
vadmaruschak вне форума Ответить с цитированием
Старый 03.11.2009, 15:55   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Смотря что ты хочешь. Если нужно выставить базовую точку для случайного числа то так:
Код:
var i:integer;
begin
 RandSeed:=5;
 for i := 0 to 10 do begin
  write(random(10):5);
 end;
 readln;
end.
А если начало отсчета то так:
Код:
var i:integer;
begin
 for i := 0 to 10 do begin
  write(5+random(10):5);
 end;
 readln;
end.
Определись с задачей
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.11.2009, 16:10   #9
vadmaruschak
Пользователь
 
Регистрация: 12.09.2009
Сообщений: 13
По умолчанию

Вот код генерации чисел от 0 до 100:
Код:
begin
 Randomize;
  Writeln(random(100));
  Writeln(random(100));
  Writeln(random(100));
  Writeln(random(100));
  Writeln(random(100));
 Readln;
end.
Он вывел 5 чисел:
41
9
73
83
98.
В следущий раз он генерирует новые числа... А как сделать, чтобы задать эти числа(41 9 73 83 98) и генератор продолжил генерир. относительно этих чисел?
vadmaruschak вне форума Ответить с цитированием
Старый 03.11.2009, 16:25   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ты мой пост вимательно читал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли как-нибудь загнать текст "x+3" в функцию? TwiX Общие вопросы Delphi 13 02.11.2009 18:49
Можно ли объявлять функцию в функции? Как в делфи... TwiX Общие вопросы C/C++ 5 28.10.2009 22:54
Можно ли с помощью win API отключит функцию Fast write на видюхе ATI radeon 9600 GanGSISoft Win Api 0 12.10.2008 15:54
Можно ли подсчитать FPS в другом процессе? Minimus Win Api 7 26.08.2008 02:08
можно ли написать функцию для формул? Misha Pitersky Microsoft Office Excel 1 02.11.2006 09:48