Форум программистов, компьютерный форум, киберфорум
Наши страницы

Как работать с генератором случайных чисел - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ перевод строки в число, определить делится ли оно на 4 http://www.cyberforum.ru/cpp-beginners/thread902562.html
пожалуйста помогите! нужно определить делится ли строка на 4. я так понял что функция atoi не подходит, как еще это можно сделать?
C++ Вычислить знгачение выражения при заданных условиях. Не могу справиться с задачкой, помогите пожалуйста :) http://www.cyberforum.ru/cpp-beginners/thread902561.html
C++ Как убрать искажения в raycasting алгоритме при обзоре по OY
Доброго времени суток. Пишу 2.5D игру , где видимость трехмерного пространства создается с помощью алгоритма raycasting (на нем работает Doom , Doom II , Duke Nuknem 3D , Hexen). Вопрос такой :...
C++ Структура "Банковский кредит"
Структура «Банковский кредит» с полями "ФИО клиента", "сумма", "срок", "процент". Бизнес-функция: вывод суммы, которую ежемесячно должен выплачивать клиент.
C++ Анализ http://www.cyberforum.ru/cpp-beginners/thread902544.html
Помогите пожалуйста написать анализ по программе для ргр. По введенному номеру музыкальной ноты вывести ее словесное наименование. Например, 3 – ми. class Note { static const char* note; ...
C++ Как модернизировать функцию rand, что бы числа генерировались на заданом промежутке от a до b ? Как модернизировать функцию rand, что бы числа генерировались на заданом промежутке от a до b ? подробнее

Показать сообщение отдельно
HedgehogNSK
0 / 0 / 0
Регистрация: 05.05.2013
Сообщений: 13

Как работать с генератором случайных чисел - C++

15.06.2013, 16:09. Просмотров 531. Ответов 6
Метки (Все метки)

В интернете нашёл мешалку для vector'a
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <functional>
#include <vector>
#include <set>
#include <iostream>   
#include <ctime>
#include <cstdlib>
#include <ctime>
//MAGIC
// random generator function:
ptrdiff_t myrandom (ptrdiff_t i) { return rand()%i;}
// pointer object to it:
ptrdiff_t (*p_myrandom)(ptrdiff_t) = myrandom;
//MAGIC
Затем в какой-нибудь функции используем
C++
1
2
3
4
5
6
7
8
void foo(vector<string> *deck){
srand ( unsigned ( time (NULL) ) );
 
// using built-in random generator:
random_shuffle ( deck->begin(), deck->end() );
// using myrandom:
random_shuffle ( deck->begin(), deck->end(), p_myrandom);
}
Попытался прикрутить тоже самое к классу, но тут возникла проблема.
Допустим:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Class x
{
    vector<string> deck;
    ptrdiff_t (*p_myrandom);
    public:
    x(void);
    ~x(void);
    ptrdiff_t myrandom (ptrdiff_t i) { return rand()%i;}
    void foo(vector<string> *deck);
}
 
x::x(void)
{
   ptrdiff_t (*p_myrandom)(ptrdiff_t) = myrandom; //Так не выходит
   this->foo(&this->deck)
}
 
x::foo(vector<string> *deck)
{ 
      srand ( unsigned ( time (NULL) ) );
    random_shuffle ( deck->begin(), deck->end() );
    // using myrandom:
        random_shuffle ( deck->begin(), deck->end(), p_myrandom);
}
Такое действие не срабатывает. Помогите, пожалуйста, понять строку:
C++
1
ptrdiff_t (*p_myrandom)(ptrdiff_t) = myrandom;
А так же адаптировать этот генератор для класса.
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru