WingLion's Forum

А чего тут только нет?.. и поиска нет, и юзеров нет, и ничего ненужного нет
Текущее время: 01 май 2017, 00:39

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Генераторы псевдослучайных чисел
СообщениеДобавлено: 30 июл 2011, 14:26 
Не в сети
Добрый Админ
Добрый Админ
Аватара пользователя

Зарегистрирован: 04 фев 2005, 06:45
Сообщения: 616
Откуда: St.Petersburg
Благодарил (а): 1 раз.
Поблагодарили: 32 раз.
Когда-то нарытые в интернет:

kiss.pas:

Код:
program KISS;{Keep It Simple Stupid}

var
   x : LongWord = 123456789;
   y : LongWord = 362436000;
   z : LongWord = 521288629;
   c : LongWord = 7654321;

function KissRandom() : LongWord;
var
   t : int64;
begin
   x := int64(69069)*x + 12345;
   y := y xor (y shl 13);
   y := y xor (y shr 17);
   y := y xor (y shl 5);
   t := int64(698769069)*z + c;
   c := t shr 32;
   z := t;
   result := x + y + z;
end;

begin
   {...}
end.


linear.pas

Код:
program Linear;

var
   y0 : LongWord;

procedure InitRandom(seed : LongWord);
begin
   y0 := seed;
end;

function LinearRandom() : LongWord;
var
   y : int64;
begin
   y := int64(y0)*1664525 + 1013904223;
   y0 := LongWord(y);
   result := y0;
end;

begin
   InitRandom(GetTickCount);//часы простой, но плохой способ инициации
   {...}
end.


mother.pas

Код:
program MotherOfAll;

var
   y : array [0..4] of real;

procedure InitRandom(seed : LongWord);
var
   i : integer;
   s : int64;
begin
   s := seed;
   for i := 0 to 4 do begin
      s := LongWord(s*1664525 + 1013904223);
      y[i] := s/4294967296;
   end;
end;

function MotherOfAllRandom() : real;
var
   b, c : extended;
begin
   b := 2111111111.0;
   c := b*y[3] + 1492*y[2] + 1776*y[1] + 5115*y[0] + y[4];
   y[4] := trunc(c); y[3] := y[2]; y[2] := y[1]; y[1] := y[0]; y[0] := c - y[4];
   y[4] := y[4]/4294967296;
   result := y[0];
end;

begin
   InitRandom(GetTickCount);//часы простой, но плохой способ инициации
   {...}
end


_________________
Дракон всегда прав. Даже, когда он Лев - он прав!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Генераторы псевдослучайных чисел
СообщениеДобавлено: 30 июл 2011, 15:06 
Не в сети
Аватара пользователя

Зарегистрирован: 28 апр 2011, 18:50
Сообщения: 97
Откуда: Кузнецк
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Delphi Prism.
Код:
var r: Random := new Random(5);//инициализируем одним и тем же числом - получаем одинаковые последовательности
for i: Integer := 0 to 4 do
  Console.WriteLine( r.Next(50) );//от 0 до 49
будет 16,14,13,31,23

Random(7);
19,43,33,2,18

_________________
Весною птички прилетят, Ручьи повсюду зажурчат, Цветы конечно расцветут... Но кто-нибудь насрёт и тут...
Напишу СВОЮ игру! С мячиком и кошками


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Генераторы псевдослучайных чисел
СообщениеДобавлено: 30 июл 2011, 16:19 
Не в сети
Добрый Админ
Добрый Админ
Аватара пользователя

Зарегистрирован: 04 фев 2005, 06:45
Сообщения: 616
Откуда: St.Petersburg
Благодарил (а): 1 раз.
Поблагодарили: 32 раз.
Тигря писал(а):
Delphi Prism.


У таких генераторов может быть недостаток - в зависимости от версии этой самой Delphi генерация может отличаться...

_________________
Дракон всегда прав. Даже, когда он Лев - он прав!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Генераторы псевдослучайных чисел
СообщениеДобавлено: 30 июл 2011, 16:38 
Не в сети
Аватара пользователя

Зарегистрирован: 28 апр 2011, 18:50
Сообщения: 97
Откуда: Кузнецк
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
это 2010 Студия. дотнэт4, а язык любой нэтовый (призма, шарп, хоть бейсик). Я думаю будем писать на C#. Если Феникс не согласен, то получается по ЛУ я остаюсь единственный прогер. И тогда буду мучать Призму.
Вообще-то маловероятно, что алгоритм генерации поменяют

_________________
Весною птички прилетят, Ручьи повсюду зажурчат, Цветы конечно расцветут... Но кто-нибудь насрёт и тут...
Напишу СВОЮ игру! С мячиком и кошками


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Генераторы псевдослучайных чисел
СообщениеДобавлено: 31 июл 2011, 01:30 
Не в сети

Зарегистрирован: 24 июл 2011, 19:29
Сообщения: 10
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Код:
int random(int min, int max)
{
   g_seed=214013*g_seed+2531011;
   return min+(g_seed ^ g_seed>>15)%(max-min+1);
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Генераторы псевдослучайных чисел
СообщениеДобавлено: 14 окт 2011, 18:32 
Не в сети
Аватара пользователя

Зарегистрирован: 28 апр 2011, 18:50
Сообщения: 97
Откуда: Кузнецк
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Фибоначчи и Elite
http://www.als.ru/press/?id=33&start=90
http://greenword.ru/2009/06/fibonacci-sequence.html
http://www.novasich.org.ua/index.php?go ... ew&id=2811

_________________
Весною птички прилетят, Ручьи повсюду зажурчат, Цветы конечно расцветут... Но кто-нибудь насрёт и тут...
Напишу СВОЮ игру! С мячиком и кошками


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB