ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

12.07.2007, 09:01
|
|
Участник форума
Регистрация: 27.08.2006
Сообщений: 223
Провел на форуме: 2154209
Репутация:
341
|
|
я всегда пишу генератор от функции timer();. цыфр добуя. Меняются быстро=) вот и генератор вам). на vb довел его до совершенства, как мне кажется.
|
|
|

12.07.2007, 10:34
|
|
Участник форума
Регистрация: 19.05.2007
Сообщений: 228
Провел на форуме: 4325663
Репутация:
240
|
|
Самый простой математический метод генерации псевдослучайных чисел есть линейный конгруэнтный метод. Следующее число последовательности расчетывается исходя из предыдущего по формуле
x2 = (a*x1 + c) mod m
где a,c,m параметры последовательности, а mod - остача от деления. Есть теорема, выполнение условий которой гарантирует появление последовательности с полным периодом, т. е. псевдослучайные числа будут набирать всех значений от 0 до m:
1. c и m взаимно просты.
2. a - 1 кратно p для всех простых p — делителей m;
3. a - 1 кратно 4, если m кратно 4.
Если надо получить псевдослучайное число в интервале от 0 до 1, тогда результат делят на m.
|
|
|

12.07.2007, 19:58
|
|
Участник форума
Регистрация: 11.07.2007
Сообщений: 190
Провел на форуме: 254313
Репутация:
185
|
|
Сообщение от xqwerx
Lamia Поэтому и спрашиваю, что да как лучше будет! Какую технологию использовать для реализации на асм? Я слышал и читал только про стековый генератор, но уж слишком загонно!
У тя ж в джойнере полиформизм вроде присутствует!
Значит там и генератор псевдослучайных чисел есть!
Чем он тя не устраивает,не так случайно кости выпадают?
Абсолютной случайности всеравно не получится!Если
самому написать близкий к идеалу не получается,то приходится выбирать из чужих!
Выбирай: http://vx.org.ua/29a/main.html
Может что и нароеш..там и си и асм
;by Slon
brandom32:
push edx ecx
xor edx,edx
imul eax,eax,100
push eax
call random32
pop ecx
div ecx
xchg eax,edx
xor edx,edx
mov ecx,100
div ecx
pop ecx edx
ret
random32:
push edx ecx
db 0fh,031h
rcl eax,2
add eax,12345678h
random_seed = dword $-4
adc eax,esp
xor eax,ecx
xor [random_seed],eax
add eax,[esp-8]
rcl eax,1
pop ecx edx
ret
|
|
|

12.07.2007, 20:02
|
|
Участник форума
Регистрация: 11.07.2007
Сообщений: 190
Провел на форуме: 254313
Репутация:
185
|
|
Сообщение от Ni0x
Lamia, я не говорю что на asm генератор будет хуже, я своим высказыванием имел ввиду, что написать генератор случайных чисел очень сложно на любом языке, даже более того, почти невозможно.
А я и не спорю!Именно случайных....
|
|
|

12.07.2007, 23:36
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
Lamia В джойне случайные числа делаются стандартными методами! А вот иметь свой генератор приблеженный хотя бы к Random() для проектов на асме - это уже плюсег (тебе)!!!!
P.S. Всем откликнувшимся спасибо, собрал много инфы и интересных идей!
|
|
|

13.07.2007, 00:33
|
|
Участник форума
Регистрация: 11.07.2007
Сообщений: 190
Провел на форуме: 254313
Репутация:
185
|
|
Генератор не мой!А отсюда http://www.wasm.ru/article.php?article=virii_weapon
На Wasm так же есть тестировщик ГПСЧ
Последний раз редактировалось Lamia; 13.07.2007 в 00:39..
|
|
|

07.10.2007, 22:16
|
|
Banned
Регистрация: 03.08.2007
Сообщений: 313
Провел на форуме: 951141
Репутация:
291
|
|
У меня многопоточность......rand() используется раза три в функции SomeFunction
----каждый поток выглядит так
OneThread()
{
while(i--)
SomeFunction()
}
встречаются повторяющееся последовательности...че делать)
использовал srand(time(0)) соответсвенно не пашет ...
|
|
|

07.10.2007, 22:19
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
inv а ты инициализировал генератор, вот так:
time_t MyTime;
srand((unsigned)time_t(&MyTime)*1000000);
???
|
|
|

07.10.2007, 22:23
|
|
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме: 2009677
Репутация:
472
|
|
К черту rand вместе с crt. Напиши функцию, которая будет генерировать тебе псевдослучайное число с помощью GetTickCount(). Я выкладывал вроде пример в топике "с++ задай вопрос - получи ответ", глянь последние страницы.
|
|
|

07.10.2007, 22:39
|
|
Banned
Регистрация: 03.08.2007
Сообщений: 313
Провел на форуме: 951141
Репутация:
291
|
|
Ni0x
у меня потоки......а там обращение ко времени получается к одному и тому же
я делал так
EnterCriticalSection(&cs);
srnd();//моя srand
....обращение к песевдослу числу
szRandUrl(login,passwd,url);
не помогло
Твое пробовал че-то вообще не покатило)))))))))
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|