Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
 |
[C++] Как сделать аналог rand() ?? 20.02.02 23:42 Число просмотров: 1204
Автор: + <Mikhail> Статус: Elderman
|
A c run-time tiazhelo posmotret~
unsigned long g_seed;
#define MY_RAND_MAX 0x7fff
void __cdecl my_srand (unsigned int seed)
{
g_seed = seed;
}
int __cdecl my_rand (void)
{
return(((g_seed = g_seed * 214013L + 2531011L) >> 16) & MY_RAND_MAX);
}
---
dlia min -> max
current = ((float)rand()*(max - min))/MY_RAND_MAX + min;
|
|
<programming>
|
[C++] Как сделать аналог rand() ?? 20.02.02 22:06
Автор: ih8u <i hate you> Статус: Member
|
srand() и rand() не могу юзать, нету рантайма,
есть у когонить мысли или сурсы, как сделать свою функцию, генерящую рандом числа,
желательно в нужном диапазоне :))
за ранее спасибо!!
|
 |
[C++] Попробуй так: 21.02.02 01:29
Автор: Korsh <Мельников Михаил> Статус: Elderman
|
Если тебе самую простую, то возьми рекурентное соотношение с сочитаниями ограниченных функций типа:
Next=A*cos^2(Prev/10)+B*exp(sin(1/Prev));
ченить такое начальный параметр сам придумай,
а потом нормируй на любое число
и получится конкретно заданный диапазон от псевдослучайного генератора.
Я на Мат. моделировании именно такой генератор и написал, причём он не очень сильно отличался от стандартного сишного rand()`а.
Если хош потом и исходники кину.
А вообщето способов миллион(ну или почти миллион :) )
|
 |  |
[C++] Попробуй так: 21.02.02 01:47
Автор: ih8u <i hate you> Статус: Member
|
А попо дробнее можно??
подойдёт и простой генератор,
главное тчо бы работал нормально
|
 |
[C++] Как сделать аналог rand() ?? 20.02.02 23:42
Автор: + <Mikhail> Статус: Elderman
|
A c run-time tiazhelo posmotret~
unsigned long g_seed;
#define MY_RAND_MAX 0x7fff
void __cdecl my_srand (unsigned int seed)
{
g_seed = seed;
}
int __cdecl my_rand (void)
{
return(((g_seed = g_seed * 214013L + 2531011L) >> 16) & MY_RAND_MAX);
}
---
dlia min -> max
current = ((float)rand()*(max - min))/MY_RAND_MAX + min;
|
 |  |
[C++] Как сделать аналог rand() ?? 21.02.02 00:42
Автор: ih8u <i hate you> Статус: Member
|
мля, это я знаю, тут надо ещо юзать time() вместе с srand()
а time() не хочет компилица,
есть какиенить другие варианты??
|
 |  |  |
Получи dd из: 21.02.02 01:18
Автор: Chingachguk <Chingachguk> Статус: Member Отредактировано 21.02.02 01:20 Количество правок: 1
|
> мля, это я знаю, тут надо ещо юзать time() вместе с srand() > а time() не хочет компилица, > есть какиенить другие варианты??
Получи dd из:
; RDTSC
db 0Fh, 31h
в edx:eax.
но лучше eax.
|
 |  |  |
[C++] Как сделать аналог rand() ?? 21.02.02 00:54
Автор: + <Mikhail> Статус: Elderman
|
> мля, это я знаю, тут надо ещо юзать time() вместе с srand() > а time() не хочет компилица, > есть какиенить другие варианты??
voobcheto pri chem tut time??
seed eto luboe chislo :
mozhesh naprimer ispolzovat` summ handlov processov ili eche kak s generirivat` ( a gde eto ty compiliruesh chto tam net time?)
|
|
|