Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Вниз

Генератор случ чисел   Найти похожие ветки 

 
Kostik___   (2005-02-12 12:37) [0]

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


 
Kerk ©   (2005-02-12 12:41) [1]

используй функцию Random
ну и про Randomize не забудь


 
Kostik___   (2005-02-12 12:43) [2]

>> используй функцию Random ну и про Randomize не забудь

меня не устраивает стандартный генератор


 
Kerk ©   (2005-02-12 12:44) [3]

Kostik___   (12.02.05 12:43) [2]
меня не устраивает стандартный генератор


чем? он дает равномерное распределение.. тебе другое распределение нужно? так получи его из равномерного.


 
Kostik___   (2005-02-12 12:51) [4]

Во - первых
для криптографии он не подходит, являясь достаточно прозрачным

Во - вторых
мне предвидиться что мне вскоре понадобиться реальный генератор

В третьих Стало интересно

Создание Генераторов сл. чисел - отдельная ветвь математики, физики и програмирования


 
Leonid Troyanovsky ©   (2005-02-12 12:55) [5]


> Kostik___   (12.02.05 12:37)  
> может кто подкинет ссылки по тому как реализовать эффективный
> генератор случайных чисел
> Или куски кода у кого завалялись....


Вот, что писал Max Alekseyev (Max.Alekseyev@f60.n5015.z2.fidonet.org)
__
Заголовок:random
Группы новостей:fido7.ru.algorithms
Число:2001-03-08 13:12:08 PST

Replying to a message of Alexander Tsyplakov to All:

AT> Тут недавно в sci.math.num-analysis небезызвестный Джордж
AT> Марсалья предложил свой новый алгоритм.

AT> static unsigned long Q[1019];
AT> unsigned long MWC1019(void)
AT> {unsigned long long t;
AT>  static unsigned long c = 362436, i = 1018;
AT>  t = 147669672LL*Q[i] + c; c = (t>>32);
AT>  if(i>0) return(Q[i--] = t);
AT>  i = 1018;  return(Q[0] = t);
AT> }

AT> Честно говоря, я этот птичий язык не до конца понимаю.
AT> Может, кто-нибудь переведет на Паскаль и запостит сюда.
AT> Плиз.

{// type cardinal=longint;}
var Q:array[0..1018] of cardinal;
const c:cardinal=362436; i:cardinal=1018;
function MWC1019:cardinal;
var t_:array[0..1] of cardinal;
   t:comp absolute t_;
begin
 t := 147669672.*Q[i] + c; c:=t_[1];
 Q[i] := t_[0];
 if i>0 then dec(i) else i:=1018;
 MWC1019 := t_[0];
end;

AT> Утверждается, что этот небольшой кусок кода выдает 32-битные
AT> целые числа со скоростью 300 миллионов в секунду на машине
AT> 850MHz.
AT> Утверждается также, что период этого чуда, называемого
AT> MWC1029 превосходит 10^9824. Чтоб я жил столько :)

Хаароший период...

AT> Предварительно требуется заполнить массив
AT> Q[0],Q[1],...Q[1018] 32-битными случайными целыми числами.
AT> Для этого нужно использовать просто хороший стандартный
AT> генератор. Марсалья предложил KISS. Что такое KISS не знаю.

AT> Генератор проходит все тесты из "батареи тестов Diehard".
AT> Diehard тоже придумал Марсалья. См.
AT>           http://stat.fsu.edu/pub/diehard

Regards, Max
--

См. также
http://groups.google.com/groups?selm=1760656504%40p2.f175.n5020.z2.ftn

--
Regards, LVT.


 
Kostik___   (2005-02-12 13:16) [6]

Leonid Troyanovsky, я сейчас все это просмотрю, посчитаю на сколько там хорошо с дисперсией корреляцией... и период надо бы узнать


 
Kostik___   (2005-02-12 13:44) [7]

Leonid Troyanovsky,
Ну что я могу сказать:
1) период этого генератора от 7000 до 9000 псевдослучайных чисел
2) в его основе лежит стандартный генератор (а это плохо), т.к. надо инициализировать массив с помощью ф-ции RND

линейный коэнгруентный генератор мне кажеться не хуже этого

а так спасибо за помощь.


 
Anatoly Podgoretsky ©   (2005-02-12 14:26) [8]

По генераторам случайных чисел написано такое количество многотомных монографий, что тебе за всю жизнь не прочитать. Для начала можно ознакомиться с трудами Кнута, а потом и с другими.


 
Leonid Troyanovsky ©   (2005-02-12 14:27) [9]


> Kostik___   (12.02.05 13:44) [7]


> Ну что я могу сказать:
> 1) период этого генератора от 7000 до 9000 псевдослучайных
> чисел

Не верю.

AT> Утверждается также, что период этого чуда, называемого
AT> MWC1029 превосходит 10^9824. Чтоб я жил столько :)

Вот это мне трудно проверить, а 9000 - это несерьезно.

> 2) в его основе лежит стандартный генератор (а это плохо),
> т.к. надо инициализировать массив с помощью ф-ции RND

В основе не лежит стандартный генератор.
Можешь взять любой другой (приличный) генератор для
заполнения 1019 DWORD.

> линейный коэнгруентный генератор мне кажеться не хуже этого

"Кажется" - это несерьезный критерий для интересующихся
математикой, физикой и програмированием.

--
С уважением, LVT.


 
Eraser ©   (2005-02-12 15:48) [10]

Kostik___
Для каких целей нужен генератор? От него требуется производительность или "случайность" в бОльшей мере?


 
Kerk ©   (2005-02-12 15:55) [11]

Kostik___   (12.02.05 12:51) [4]
для криптографии он не подходит, являясь достаточно прозрачным


что значит прозрачным? другие непрозрачные?


> мне предвидиться что мне вскоре понадобиться реальный
> генератор

Random - не реальный?

Почитай что-нибудь на эту тему лучше... а то это:

> Создание Генераторов сл. чисел - отдельная ветвь
> математики, физики и програмирования

на словоблудие смахивает, хотя и верно.


 
palva ©   (2005-02-12 18:27) [12]

Kostik___   (12.02.05 12:51) [4]
> Во - первых
> для криптографии он не подходит, являясь достаточно прозрачным

Генераторы для криптографии - это лучше читать не в Кнуте, а в книгах по криптоалгоритмам. Правда там изучаются не генераторы, а алгоритмы шифрования. Иногда состановй частю алгоритма является выработка случайной последовательности с дальнейшим наложением ее на шифруемый текст (гаммирование). Генераторы от таких алгоритмов можно использовать отдельно от самого алгоритма. Посмотрите алгоритм RC4, он очень простой и может служить основой для побайтной выработки случайных данных. Похожий на него SapphireII разработан сразу для нескольких вещей: шифрования, выработки чисел, хэширования. Вообще, произвольный шифровальный алгоритм может использоваться как генератор, если шифровать при его помощи нулевую последовательность байтов. Задание ключа шифрования служит аналогом функции Randomize.


 
Kostik___   (2005-02-12 21:49) [13]

Я тут нарыл книгу по криптоанализу и криптографии и там есть то что меня интересует.
А на счет книг Кнута давно наслышен что там различных алгов полно... только вот  может кто линк кинет где его книги скачать можно...
спасибо всем

Да, palva, я знаком с азами криптографии и про гаммы знаю...

Kerk ©  , прозрачный - значит банальный, простой слишком значит как правило не представляющий ничего интересного


 
Vit@ly ©   (2005-02-12 22:20) [14]

В7аAрlа9л8бйъa- это "Привет!"
БgаCн_а26ьа?Здаm Ба;_BаG!эаъsC- а это "Отвечаю тем же."
В7аxфЁаEуtаЗщПаЯ Zаiн_аnяуаЩыЩаnч_аВенвнлфвBял- означает "Попробуй расшифровать:)"
Ну а теперь можно поговорить и о генераторах случайных чисел.
Боюсь что не это главное (пройденный этап). Если кто-то сможет расшифровать эти простые фразы, ну просто не знаю, что предложить. Уверен, что никто не расшифрует, поскольку здесь совершенно другой подход к кодированию информации. Если необходимо могу выложить любые Ваши фразы (сообщения) в закодированном виде.
Если кого-то заинтересует выкладывайте сюда Ваши фразы для кодирования.


 
Вовик   (2005-02-13 09:18) [15]

>>Vit@ly
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
..
100


 
Vit@ly ©   (2005-02-13 09:52) [16]

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
будет так:
!cбь?Кб.-юб!-Uб"_eб2!Eбы!Fбэ!Bбя!yб,!uб:!rб?!oб_ФВбM


 
Kostik___   (2005-02-13 12:19) [17]

Vit@ly
> Боюсь что не это главное (пройденный этап).

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


 
Kerk ©   (2005-02-13 12:23) [18]

зашифруй отдельно 3 строки :)
a b c d e f g h i j k l m n o q r s t u v w x y z

A B C D E F G H I J K L M N O Q R S T U V W X Y Z

abcdefghijklmnoqrstuvwxyz


 
Vit@ly ©   (2005-02-13 13:41) [19]

2 Kostik___   (13.02.05 12:19) [17]
Пожалуй действительно это был ответ не на заданный вопрос

2 Kerk ©   (13.02.05 12:23) [18]

a b c d e f g h i j k l m n o q r s t u v w x y zНфбиНЦбиОдбиОСбиО биПЛбиПUбиРЁбиРOбиСАбиСIбиТ5биТDбиУ0биУxбиФrбиХюбиХlбиЦшбиЦfбиЧубиЧaбиШнбиШЪбиЩз

A B C D E F G H I J K L M N O Q R S T U V W X Y Z
Яша ЯFа a7а aJа bАа bNа cДа cRа dЗа dVа eЛа eZа fПа gва gУа hЦа iиа iЪа jма jЮа kра kcа lфа lgа mш

abcdefghijklmnoqrstuvwxyz
Нфб3Нrб5ОУб7П^б9РзбАРzбВСТбДТ.бЖУ?бИУUбКФЮбМХ:бОХN

Вопросами "упаковки" пока не занимался (здесь явно видно, что символ кодируется в два). Пока некогда


 
Kerk ©   (2005-02-13 14:13) [20]

еще одно пожалуйста
abcdeffedcba


 
AlterEgo of WondeRu ©   (2005-02-13 14:16) [21]

Kostik___   (13.02.05 12:19) [17]
Ты просто не на мой вопрос ответил

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


 
Vit@ly ©   (2005-02-13 14:31) [22]

2 Kerk ©   (13.02.05 14:13) [20]

abcdeffedcba
Нфб3Нrб5ОУб7ОQб6Оцб4Н9б2


 
Kerk ©   (2005-02-13 14:36) [23]

abcdefghijklmnoqrstuvwxyz
Нфб3Нrб5ОУб7П^б9РзбАРzбВСТбДТ.бЖУ?бИУUбКФЮбМХ:бОХN

abcdeffedcba
Нфб3Нrб5ОУб7ОQб6Оцб4Н9б2

НфбиНЦбиОдбиОСбиО биПЛбиПUбиРЁбиРOбиСАбиСIбиТ5биТDбиУ0биУxбиФrбиХюбиХlбиЦшбиЦfбиЧубиЧaбиШнбиШЪбиЩз

здесь пробел - всегда "би"

Яша ЯFа a7а aJа bАа bNа cДа cRа dЗа dVа eЛа eZа fПа gва gУа hЦа iиа iЪа jма jЮа kра kcа lфа lgа mш

здесь пробел - всегда "а "


ну и нафига такое шифрование нужно?


 
Vit@ly ©   (2005-02-13 14:51) [24]

:))
Оно не всегда такое.
У передающей и принимающей сторон имеются несколько "моделей" кодирования/декодирования. Я в данном случае кодировал одной и той же "моделью".

Попробуй расшифровать (найти закономерность) два простых слова, если кгнечно интересно

сон
у^аKса

Сон
Гrаxус

нос
рТаNтF

Нос
АXаxхp

Добавлю, что в исходных словах все симводы кириллицей


 
palva ©   (2005-02-13 15:01) [25]

> думаю в крипографии лучше импользовать аппаратный генератор случайных чисел, этот вариант самый надежный... а программным генераторам не доверяю

Правильно. И генератор надо собрать самому - покупным генераторам тоже не стоит доверять. Транзисторы, кстати, должны быть до 1980 года выпуска (можно взять от старой ЭВМ Минск-22), чтоб злоумышленник не заложил туда жучков.

Если серьезно, то аппаратный генератор обладает тем недостатком, что в него невозможно заглянуть внутрь. А вот исходник программы - другое дело. К тому же, в исходник перед тобой уже заглянули сотня человек по всему миру, и ничего подозрительного не нашли.


 
Vit@ly ©   (2005-02-13 15:15) [26]

2 Kerk ©   (13.02.05 14:36) [23]
И здесь, ты явно поспешил (возможно случайно, пропустил z)
> пробел - всегда "би"

zНфбиНЦбиОдбиОСбиО биПЛбиПUбиРЁбиРOбиСАбиСIбиТ5биТDбиУ0биУxбиФrбиХюбиХlбиЦшбиЦfбиЧубиЧaбиШнбиШЪбиЩз

и если расположишь записи друг под другом (с учетом что кодированное  - два символа), то увидишь, 1-й пробел (фб), 2-й (Цб), 3-й (дб) и т.д.
то же по попводу
> здесь пробел - всегда "а "


 
Kerk ©   (2005-02-13 15:17) [27]

Vit@ly ©   (13.02.05 14:51) [24]

Тогда лучше зашифруй
сон классика в ссылке

а лучше алгоритм выложи.. там тебе в слабые места и ткнем :)


 
Kerk ©   (2005-02-13 15:18) [28]

Vit@ly ©   (13.02.05 15:15) [26]
И здесь, ты явно поспешил (возможно случайно, пропустил z)
> пробел - всегда "би"


я ее не пропустил. "z" там случайно оказалось, как я понял... см. предыдущую строку.. так как раз "z" не хватает... ты перевод строки не в том месте сделал.


 
Vit@ly ©   (2005-02-13 15:29) [29]

переводы строк я делал где положено (копипаст)

> сон классика в ссылке
зашифровать могу, а алгоритм (хотя это не совсем алгоритм, а идея) пока не запатентован.

сон классика в ссылке
у^аKсабVрьаrиЯбисэаBмxаМДcаОЕбаbэFаyъдаЛтМ

Ну, есессно, скажешь, что отдельно сон и здесь сон совпадает в кодах

Тогда здесь посмотри
О, сон классика в ссылке
БgаW4маyхТаl7"аhтаа щVаoуРаЦлзв3лНв3о бэучбикZаu


 
Kerk ©   (2005-02-13 15:38) [30]


> a b c d e f g h i j k l m n o q r s t u v w x y z

vs

> a b c d e f g h i j k l m n o q r s t u v w x y
> zНфбиНЦбиОдбиОСбиО
> биПЛбиПUбиРЁбиРOбиСАбиСIбиТ5биТDбиУ0биУxбиФrбиХюбиХlбиЦ
> шбиЦfбиЧубиЧaбиШнбиШЪбиЩз

какой нафиг копипаст?

> Ну, есессно, скажешь, что отдельно сон и здесь сон
> совпадает в кодах

Да совпадает.. а ты представь, что каждое мое шифрованное письмо начинается с "Здравствуйте, Николай!" или "Привет, Света!"... так содержание как минимум приветствия враги будут знать.. да и при подобных повторах большой простор для анализа.

могу сходу подобный алгоритм предложить...

InBytes: array of Byte;
OutWords: array of Word;
Password: string;
PasSum,Increment: Word;

PasSum := CalcSum(Password);
Increment := PasSum;
for i := 1 to SizeOfText do
begin
 OutWords[i] := InBytes[i] shr (PasSum mod 16);
 OutWords[i] := OutWords[i] xor Increment;
 Inc(Increment);
end;


вот.. результат будет весьма похож на твой :P


 
Kerk ©   (2005-02-13 15:41) [31]


> OutWords[i] := InBytes[i] ror (PasSum mod 16);

:)


 
Vit@ly ©   (2005-02-13 15:44) [32]

"Беда" в том, что подобного рода алгоритмы давно известны и исследованы.
И свободно декодируются на компьютере за час, сутки, неделю ...
Ну мы, кажется, влезаем в оффтоп
Автора поста давно не видно, и его в общем интересует совсем другой вопрос.
При желании можно продолжить по аське
С уважением


 
Kerk ©   (2005-02-13 15:47) [33]

Vit@ly ©   (13.02.05 15:44) [32]
"Беда" в том, что подобного рода алгоритмы давно известны и исследованы.
И свободно декодируются на компьютере за час, сутки, неделю ...


Ну так твоего-то никто не видел!! :)

> При желании можно продолжить по аське

Думаю можно.. но чуть позже :)


 
Vit@ly ©   (2005-02-13 15:52) [34]


> Ну так твоего-то никто не видел!! :)
:))))))
Два простых слова "сон" и "нос"
Переставлены только крайние буквы, для облегчения задачи центральную оставил на месте.
Расшифровать СЛАБО :)))


 
Kerk ©   (2005-02-13 16:01) [35]

Странный подход.. т.е. вся суть твоего шифрования в том, что ты алгоритм не сообщаешь.


 
Vit@ly ©   (2005-02-13 16:10) [36]

здесь не присутствует алгоритм, это конечно же покажется странным (с первого взгляда). Это не алгоритм (я писал об этом в предыдущих постах). Это другой подход к шифрованию


 
Kostik___   (2005-02-13 20:31) [37]

Господа, никто почти (за редким исключением) не отвечает на мой вопрос. У меня такое сложилось впечатление, что алгоритмы почти достоверно реализующие случайный розыгрыш держаться в тайне...
НИКТО толком не ответил

Vit@ly какой у тя номер аси????


 
Kolan ©   (2005-02-13 20:35) [38]


> Генератор случ чисел (не псевдо)

Насколько я знаю такое делают например использую значения напряжений где-либо(в компьютере конечно)...


 
palva ©   (2005-02-13 20:36) [39]

Vit@ly ©   (13.02.05 16:10) [36]
В древние века авторов таких алгоритмов, после того как алгоритм начинал работать, бросали на съедение крокодилам, чтоб сохранить секрет. Поэтому таких алгоритмов больше никто не придумывает. Но оказывается еще не всех съели крокодилы.

Вы подумайте над моими словами.


 
Vit@ly ©   (2005-02-13 20:40) [40]

Vit@ly какой у тя номер аси????
В анкете



Страницы: 1 2 вся ветка

Форум: "Основная";
Текущий архив: 2005.02.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.57 MB
Время: 0.037 c
1-1108465034
pasha_golub
2005-02-15 13:57
2005.02.27
Запуск приложения из ресурса


14-1107849472
Knight
2005-02-08 10:57
2005.02.27
Ntogonidze... кто-нить сталкивался?


3-1106737494
Кук
2005-01-26 14:04
2005.02.27
Обновление данных в дбгриде


1-1108469483
Ega23
2005-02-15 15:11
2005.02.27
Переименование проекта в IDE


14-1107344630
saNat
2005-02-02 14:43
2005.02.27
Ищу материал





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский