Перейти к содержимому


- - - - -

Найдено на старом винте)) Улыбнуло)))

юмор правила женщины

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 64

#61 Tetris

    Продвинутый пользователь


  • Пользователь
  • PipPipPip
  • Сообщений: 1 213
  • Регистрация: 05 май 2011 21:24
  •  
  • Не определился
Offline

Отправлено 20 Август 2015 - 15:45

Цитата

когда компьютеры были большими...  а программы маленькие..
И жестких дисков на всех не хватало..
в комп ставилось 2-3-4 дисковода...
с одного грузилась ...............
......................
то она вежливо попросила бы  вставить  биск В в дисковод :83:

дааа..
так мы жили

на втором предложении, понял что читаю его голосом))))

Изображение

:36:
Судьба играет человеком, как в тетрис - крутит его и вертит, и всё только для того, чтобы в итоге хорошо вставить!

#62 Vad

    Продвинутый пользователь


  • Супермодератор.
  • PipPipPip
  • Сообщений: 6 840
  • Регистрация: 31 май 2012 01:43
  •  
  • Мужчина
  • Город:Армавир
Offline

Отправлено 20 Август 2015 - 16:53

Нужно знать мой голос ))  чтоб читать им :88:

#63 Толстый

    Продвинутый пользователь


  • Пользователь
  • PipPipPip
  • Сообщений: 1 125
  • Регистрация: 12 май 2010 09:02
  •  
  • Мужчина
  • Город:Армавир
Offline

Отправлено 27 Август 2015 - 10:43

Aleks: "Можете меня забанить совсем,иначе пока моя жалоба не будет удовлетворена,я буду требовать и дальше."
Толстый: "Извольте получить флаг и пройти в начало колонны."

#64 Nic

    Продвинутый пользователь


  • Пользователь
  • PipPipPip
  • Сообщений: 6 135
  • Регистрация: 10 май 2010 19:13
  •  
  • Мужчина
  • Город:Нирвана
Offline

Отправлено 27 Август 2015 - 13:10

Просмотр сообщенияNjcs сказал:

А еще я заметил что функция rnd в бейсике располагает звезды примерно на одних и тех же местах, Поэтому в версии MSX использовали rnd(time)
Вот в последней версии DELPHI  реализован RND в исходниках модуля system, так:
// версия для целых чисел диапазон (0,ARange)
function Random(const ARange: Integer): Integer;
var
  Temp: Longint;
begin
  Temp := RandSeed * $08088405 + 1;
  RandSeed := Temp;
  Result := (UInt64(Cardinal(ARange)) * UInt64(Cardinal(Temp))) shr 32;
end;
//-----------------------------------------------------

// версия для вещественных чисел диапазон (0,1)
function Random: Extended;
const
  two2neg32: double = 0.00000000023283064365386962890625; // 2^-32
var
  Temp: Longint;
  F: Extended;
begin
  Temp := RandSeed * $08088405 + 1;
  RandSeed := Temp;
  F := Int64(Cardinal(Temp));
  Result := F * two2neg32;
end;

Если не обращать внимание на преобразования типов целых чисел integer, UInt64, Int64, Cardinal,  longint - которые отличаются разрядностью и знаковостью, то...
Как видно, - только умножения и сдвиг, а $08088405 - это "магическое" простое число. RandSeed - внутренний регистр, где хранится опорное число для этого генератора.  Соответственно, можно воспроизводить одинаковую последовательность просто присвоив вначале программы ему что-то, к примеру RandSeed:=1  :)
Функция Randomize - записывает туда в RandSeed - системное время :)

Так что, даже в современной версии - звезды появлялись бы также :)

Сообщение отредактировал Nic: 27 Август 2015 - 13:25

Благодарю  модерирование за подлинность непредвзятости

#65 art.prof

    Продвинутый пользователь


  • Пользователь
  • PipPipPip
  • Сообщений: 817
  • Регистрация: 08 май 2010 14:11
  •  
  • Мужчина
Offline

Отправлено 28 Август 2015 - 00:19

Просмотр сообщенияNic (27 Август 2015 - 13:10) писал:

Вот в последней версии DELPHI  реализован RND в исходниках модуля system, так:
// версия для целых чисел диапазон (0,ARange)
function Random(const ARange: Integer): Integer;
var
Temp: Longint;
begin
Temp := RandSeed * $08088405 + 1;
RandSeed := Temp;
Result := (UInt64(Cardinal(ARange)) * UInt64(Cardinal(Temp))) shr 32;
end;
//-----------------------------------------------------

// версия для вещественных чисел диапазон (0,1)
function Random: Extended;
const
two2neg32: double = 0.00000000023283064365386962890625; // 2^-32
var
Temp: Longint;
F: Extended;
begin
Temp := RandSeed * $08088405 + 1;
RandSeed := Temp;
F := Int64(Cardinal(Temp));
Result := F * two2neg32;
end;

Если не обращать внимание на преобразования типов целых чисел integer, UInt64, Int64, Cardinal,  longint - которые отличаются разрядностью и знаковостью, то...
Как видно, - только умножения и сдвиг, а $08088405 - это "магическое" простое число. RandSeed - внутренний регистр, где хранится опорное число для этого генератора.  Соответственно, можно воспроизводить одинаковую последовательность просто присвоив вначале программы ему что-то, к примеру RandSeed:=1  :)
Функция Randomize - записывает туда в RandSeed - системное время :)

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

кст, нашлось много интересного, но там много буков...  ну не будут тута енто читать....
Изображение




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 скрытых пользователей