Форум программистов, компьютерный форум CyberForum.ru

Случайные или псевдослучайные числа? - C++

Восстановить пароль Регистрация
 
D_Ok
43 / 32 / 12
Регистрация: 11.02.2014
Сообщений: 134
27.03.2014, 13:25     Случайные или псевдослучайные числа? #1
можно ли считать, такие числа случайными, если не знать какие операции и их последовательность производилось с переменной number?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void Rand_five(int row)
{
    double number;
    int pow;
    while (row--)
    {
        for (int j = 0 ; j < 9; j++)
        {
            for (int i = 0; i < 5; i++)
            {
                number = (rand() % 10000000) / (rand() % 49+21);
                pow = rand() % 10;
                while (pow--)
                    number = sqrt(number);
                number = number*10000 - int (number*10000);
                number = int (number*10);
                cout << number;
            }
            cout << "\t";
        }
            cout << endl;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2014, 13:25     Случайные или псевдослучайные числа?
Посмотрите здесь:

C++ Случайные числа
Случайные числа C++
C++ случайные числа
случайные числа C++
C++ Случайные числа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,334
Завершенные тесты: 1
27.03.2014, 16:03     Случайные или псевдослучайные числа? #2
D_Ok, честно сказать у меня столько казуистических шуток родилось с вашего вопроса, что я даже вам обстоятельно распишу ответ на ваш вопрос.

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

Например, если полученные числа будут вот такой последовательностью:
Код
5 12 11 61 90 30 66 60 2 22 88 30 67 12 44 41
то можно условно говорить, что числа случайны.
Если же последовательность будет вот такой:
Код
44 7 80 75 89 80 88 70 90 77 85 31 19 99 52 76
то видно, что числа близки к восьмидесяти. И их нельзя уже называть случайными именно потому, что высока вероятность угадать получаемое число.
Vtulhu
369 / 375 / 96
Регистрация: 12.08.2011
Сообщений: 1,610
27.03.2014, 17:07     Случайные или псевдослучайные числа? #3
Нет.
respondent
10 / 10 / 0
Регистрация: 25.03.2014
Сообщений: 19
27.03.2014, 17:31     Случайные или псевдослучайные числа? #4
Сгенерировать полностью случайные числа только лишь арифметическими методами невозможно. То, что Вы используете это генератор псевдо-случайных чисел.
zss
Модератор
Эксперт С++
 Аватар для zss
5948 / 5553 / 1785
Регистрация: 18.12.2011
Сообщений: 14,188
Завершенные тесты: 1
27.03.2014, 17:36     Случайные или псевдослучайные числа? #5
Если использовать строгое определение, то все это псевдослучайные числа,
но с разной функцией распределения.
Для получения случайных чисел используют специальные аналоговые датчики
(например, с высокой точностью измеряется напряжение на резисторе).
Yandex
Объявления
27.03.2014, 17:36     Случайные или псевдослучайные числа?
Ответ Создать тему
Опции темы

Текущее время: 15:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru