Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Гродненский Форум
26 Апрель 2024, 21:16:09
Новости, реклама:
   Главная   Новости Гродно Помощь Игры Календарь Войти Регистрация   Меню
Гродненский Форум > Компьютеры > Программирование
(Модераторы: Админ, barmalei) > Тема:

Функция Random

Страниц  :   Вниз
  Печать  
Автор Тема: Функция Random  (Прочитано 1866 раз)
0 Пользователей и 1 Гость смотрят эту тему.
LORD-BY
Гость
« : 11 Ноябрь 2007, 14:47:41 »

Нужна сама формула функции РАНДОМ. Знаю что она работает в зависимости от времени. Где можно ее узнать???
Записан
NiN
Кандидат в депутаты
****

Репутация: +596/-0
Offline Offline

Пол: Мужской
Сообщений: 3476


Просмотр профиля
« Ответ #1 : 11 Ноябрь 2007, 15:15:06 »

в смысле узнать? В чём пишешь ?
Записан
LORD-BY
Гость
« Ответ #2 : 11 Ноябрь 2007, 16:07:21 »

Мне не нужно описание функции, нужна формула по которой высчитывается случайное число. язык С++
Записан
Зміцер
Настоящий гродненец
****

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 522


Просмотр профиля
« Ответ #3 : 11 Ноябрь 2007, 16:33:03 »

хз, зачем - можно свою написать считываешь время, слаживаешь-уножаешь в каких угодно комбинациях, потом результат делишь по модулю (получаешь остаток от деления) на разницу верхней и нижней границы желаемого интервала, прибавляешь нижнюю границу
в случ чего стучи в асю
Записан
andrey
Почетный гродненец
*****

Репутация: +68/-3
Offline Offline

Пол: Мужской
Сообщений: 1169


www.scrapshop.by

Просмотр профиля WWW
« Ответ #4 : 11 Ноябрь 2007, 16:57:10 »

http://www.daniweb.com/forums/thread85104.html
Цитировать
the default algorithm is very simple, something along the lines of
http://en.wikipedia.org/wiki/Linear_...tial_generator

там же рекомендуют seed получать методом описанным тут:
http://www.eternallyconfuzzled.com/arts/jsw_art_rand.aspx
Записан

meermitka
Останови время хоть на миг........
Почетный гродненец
*****

Репутация: +225/-2
Offline Offline

Пол: Женский
Сообщений: 1077


Просмотр профиля WWW
« Ответ #5 : 12 Ноябрь 2007, 01:00:39 »

Может нужно реализовать с помощью датчиков случайных чисел?
« Последнее редактирование: 12 Ноябрь 2007, 01:04:32 от margaritka » Записан

То что не убивает нас делает нас сильней...



http://redlinecity.ucoz.com/
medic
кампуцерны дохтар
Кандидат в депутаты
****

Репутация: +127/-2
Offline Offline

Пол: Мужской
Сообщений: 3422


За Беларусь!

Просмотр профиля
« Ответ #6 : 12 Ноябрь 2007, 11:13:42 »

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

Уронили Siemens на пол сименс цел, пол поцарапан
LORD-BY
Гость
« Ответ #7 : 12 Ноябрь 2007, 22:58:33 »

Цитировать
хз, зачем - можно свою написать считываешь время, слаживаешь-уножаешь в каких угодно комбинациях, потом результат делишь по модулю (получаешь остаток от деления) на разницу верхней и нижней границы желаемого интервала, прибавляешь нижнюю границу
в случ чего стучи в асю
Вот почти это и нужно было!!!  Только нужна стандартная, встроенная в С формула.
Записан
andrey
Почетный гродненец
*****

Репутация: +68/-3
Offline Offline

Пол: Мужской
Сообщений: 1169


www.scrapshop.by

Просмотр профиля WWW
« Ответ #8 : 12 Ноябрь 2007, 23:28:10 »

думаю, там одной формулой не обходится  Строит глазки
p.s. А результаты гугла типа http://www.google.ru/search?q=c%2B%2B+rand+source не дали ответа?
Записан

Dj_NudnyJ
Настоящий гродненец
****

Репутация: +22/-0
Offline Offline

Пол: Мужской
Сообщений: 369


Просмотр профиля
« Ответ #9 : 13 Ноябрь 2007, 11:34:33 »

Цитировать
Вот почти это и нужно было!!!  Только нужна стандартная, встроенная в С формула.
стандартной встроенной формулы в C не существует, есть стандартная библиотека stdlib, реализация которой может различатся от компилятора к компилятору.

вот то что используется в VC8

Код:
/***
*int rand() - returns a random number
*
*Purpose:
*       returns a pseudo-random number 0 through 32767.
*
*Entry:
*       None.
*
*Exit:
*       Returns a pseudo-random number 0 through 32767.
*
*Exceptions:
*
*******************************************************************************/

int __cdecl rand (
        void
        )
{

        _ptiddata ptd = _getptd();

        return( ((ptd->_holdrand = ptd->_holdrand * 214013L
            + 2531011L) >> 16) & 0x7fff );

}
Записан
Гонзих
Настоящий гродненец
****

Репутация: +37/-0
Offline Offline

Пол: Мужской
Сообщений: 301


>_<

Gonzih Просмотр профиля WWW Email
« Ответ #10 : 25 Ноябрь 2007, 22:16:36 »

не ето не то что он искал, нужна мат формула. Там короч НИХ*ЙСТВЕННЫЙ корень из времени. Я както натыкался на неё, но ввиду того что она на а4 лист еле влазит, не запомнил...
Записан

Dj_NudnyJ
Настоящий гродненец
****

Репутация: +22/-0
Offline Offline

Пол: Мужской
Сообщений: 369


Просмотр профиля
« Ответ #11 : 26 Ноябрь 2007, 00:28:54 »

все рандомы что я видел, работали по рекурсивной формуле

random_number = F(random_number)

ни разу не слышал про использовании времени для получения random числа (разве что в качестве начального значения).

а в математическом виде эта формула очень просто записывается

S = (S * 214013 + 2531011)
R = (S div 65536) mod 32768

тут
a div b - целочисленное деление a на b
a mod b - остаток от деления a на b
« Последнее редактирование: 26 Ноябрь 2007, 00:34:15 от Dj_NudnyJ » Записан
Гонзих
Настоящий гродненец
****

Репутация: +37/-0
Offline Offline

Пол: Мужской
Сообщений: 301


>_<

Gonzih Просмотр профиля WWW Email
« Ответ #12 : 04 Декабрь 2007, 21:31:17 »

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

maxposedon
Настоящий гродненец
****

Репутация: +26/-0
Offline Offline

Сообщений: 696


empty

Просмотр профиля
« Ответ #13 : 05 Декабрь 2007, 13:38:41 »

Цитировать
любой рандом основываеться на времени, идеального рандома нету, ну если только брать в расчет движение мельчайших частиц.
не любой
/dev/random в linux, совсем не на времени
Записан
Страниц  :   Вверх
  Печать  
 
Перейти в:  

Войти
Войдите, чтобы добавить комментарий

Войдите через социальную сеть

Имя пользователя:
Пароль:
Продолжительность сессии (в минутах):
Запомнить:
Забыли пароль?

Контакт
Powered by MySQL Powered by PHP Мобильная версия
Powered by SMF 1.1.20
SMF © 2006-2024, Simple Machines
Simple Audio Video Embedder
| Sitemap
Valid XHTML 1.0! Valid CSS!
Страница сгенерирована за 0,142 секунд. Запросов: 20.