crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Пример boost::random_device
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
maxpop Дата 2.3.2011, 1:01
 
Цитата(DEADHUNT @ 1.3.2011, 8:43) *
Цитата(maxpop @ 1.3.2011, 2:37) *
Вопрос по Вашему коду. В каком диапазоне выводятся рандомные числа? от 0 до 1?

согласно экспоненциальному распределению с параметром 5, т.е. функция распределения F(t) = 1 - exp(-5*t).
я не знаю какое тебе распределение нужно, посмотри документацию boost там множество разных распределений поддерживается.
скорее всего тебе равномерное распределение нужно(uniform distribution)


Спасибо. Взял uniform_int. Все работает нормально. Еще раз спасибо.
DEADHUNT Дата 1.3.2011, 8:43
 
Цитата(maxpop @ 1.3.2011, 2:37) *
Вопрос по Вашему коду. В каком диапазоне выводятся рандомные числа? от 0 до 1?

согласно экспоненциальному распределению с параметром 5, т.е. функция распределения F(t) = 1 - exp(-5*t).
я не знаю какое тебе распределение нужно, посмотри документацию boost там множество разных распределений поддерживается.
скорее всего тебе равномерное распределение нужно(uniform distribution)
maxpop Дата 1.3.2011, 2:37
  Точнее не что это за файл, почему он может не открываться?
В VC в Project->properties->vc++ directories->include directories добавил путь к бусту

фух, все запустилось) прописал путь к папке либ.
Вопрос по Вашему коду. В каком диапазоне выводятся рандомные числа? от 0 до 1?

Цитата(maxpop @ 1.3.2011, 2:23) *
Точнее не что это за файл, почему он может не открываться?
В VC в Project->properties->vc++ directories->include directories добавил путь к бусту

фух, все запустилось) прописал путь к папке либ.
Вопрос по Вашему коду. В каком диапазоне выводятся рандомные числа? от 0 до 1?


По сути мне надо выбрать движение вправо или влево. Относительно какого числа можно смотреть получившийся рандом, что бы если rnd()>x двигаться вправо, rnd()<x двигаться влево? И как вычислять это число, если менять параметр у exp(a)?
maxpop Дата 1.3.2011, 1:19
  Спасибо.
Вы не подскажите, что я делаю не правильно? Стоит VS10. Я указываю путь то буста, все библиотеки читаются, но при компиляции вылетает вот эта ошибка:"1>LINK : fatal error LNK1104: cannot open file 'libboost_random-vc100-mt-gd-1_44.lib'". Что это вообще за файл?
DEADHUNT Дата 28.2.2011, 17:00
  вот пример генерации 10 случайных величин ~ Exp(5)
#include <boost/random.hpp>
#include <boost/nondet_random.hpp>
#include <iostream>
#include <ctime>

int main()
{
    boost::random_device rng;
    boost::exponential_distribution<> exp_distr(5);
    boost::variate_generator<boost::random_device&, boost::exponential_distribution<> > gen(rng, exp_distr);
    for (int i = 0; i < 10; ++i)
        std::cout << gen() << std::endl;
    return 0;
}
maxpop Дата 28.2.2011, 1:24
  Доброго времени суток!
В проекте необходимо использовать ГСЧ. Полазив в интернете нашел библиотечки boost. Недетерминированный генератор истинно случайных чисел то-что нужно. Но не понимаю как пользоваться этим классом(не очень много знаю в C++). Поэтому прошу написать какой-нить простенький примерчик, который бы выводил случайное число.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 20.4.2024, 4:25