Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/25: Рейтинг темы: голосов - 25, средняя оценка - 4.68
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
1

Генератор псевдослучайных чисел

20.12.2010, 20:24. Показов 4952. Ответов 12
Метки нет (Все метки)

Написать генератор псевдослучайных чисел по алгоритму r = r * 4231 + 123457;
Подсчитать частоты попадания в каждый из интервалов длиной 10000 при выборке 500000.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.12.2010, 20:24
Ответы с готовыми решениями:

Генератор псевдослучайных чисел.
Здраствуйте. Мне нужно сделать вот что "Написать генератор псевдослучайных чисел по алгоритму r =...

Генератор псевдослучайных чисел
Данный генератор работает по конгруэнтному методу, формула X_{n} = ( a X_{n-1}^3 + b X_{n-1}^2 + c...

генератор псевдослучайных чисел...
Вот програмулька генерирующая псевдослучайные числа создавалась по алгоритму X(n+1)=a*X(n)+c*(mod...

Генератор псевдослучайных чисел
Лучший генератор для псевдослучайных чисел. Числа от 1 до 54(0 до 53)

12
442 / 297 / 63
Регистрация: 12.10.2009
Сообщений: 1,160
20.12.2010, 21:13 2
так как твой генератор чисел работает только с целыми числами то если брать за множество генерируемых чисел множество от 0 до 4294967296 (4294967296 максимально доступное целое число в языке программирования С) и длину выборки равную 500000 то количество 10000 интервалов будет равно 429496,7296 штук или по правилу округления 429497 штук учитывая близость чисел с увереностью в 99,999% можно предположить что в каждом интервале выпадет всего по 1 числу а значит частота попадания в любой из 10000 интервалов (с вероятностью 99,999%) будет равна 1/500000 или 0,000002
0
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
22.12.2010, 00:41  [ТС] 3
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
25
26
#ifndef RAND_H_INCLUDED
#define RAND_H_INCLUDED
 
#include <stddef.h>
 
void mysrand(size_t seed);
size_t myrand();
 
#endif // RAND_H_INCLUDED
 
#include "rand.h"
 
static size_t _seed = 1;
 
void mysrand(size_t seed)
{
    _seed = seed;
}
 
size_t myrand()
{
    static const size_t magic_number1 = 4231;
    static const size_t magic_number2 = 123457;
    _seed = _seed * magic_number1 + magic_number2;
    return _seed;
}
как то так?

Добавлено через 1 минуту
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
25
#ifndef RAND_H_INCLUDED
#define RAND_H_INCLUDED
 
#include <stddef.h>
 
void mysrand(size_t seed);
size_t myrand();
 
#endif // RAND_H_INCLUDED
#include "rand.h"
 
static size_t _seed = 1;
 
void mysrand(size_t seed)
{
    _seed = seed;
}
 
size_t myrand()
{
    static const size_t magic_number1 = 4231;
    static const size_t magic_number2 = 123457;
    _seed = _seed * magic_number1 + magic_number2;
    return _seed;
}
0
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
24.12.2010, 16:00  [ТС] 4
UP =//
0
Эксперт С++
5818 / 3470 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
30.12.2010, 05:12 5
Цитата Сообщение от Оленька* Посмотреть сообщение
как то так?
Да, так, только нужно учесть, что генератор разбит на два файла: файл myrand.h, который определяет интерфейс функций mysrand и myrand и файл myrand.c, в котором определяется реализация этих функций.
Файл myrand.h:
C
1
2
3
4
5
6
7
8
9
#ifndef RAND_H_INCLUDED
#define RAND_H_INCLUDED
 
#include <stddef.h>
 
void mysrand(size_t seed);
size_t myrand();
 
#endif // RAND_H_INCLUDED
Файл myrand.c:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "myrand.h"
 
static size_t _seed = 1;
 
void mysrand(size_t seed)
{
    _seed = seed;
}
 
size_t myrand()
{
    static const size_t magic_number1 = 4231;
    static const size_t magic_number2 = 123457;
    _seed = _seed * magic_number1 + magic_number2;
    return _seed;
}
Если что-нибудь еще непонятно, то спрашивай, пожалуйста, в этой теме
1
4199 / 1791 / 211
Регистрация: 24.11.2009
Сообщений: 27,563
30.12.2010, 06:47 6
Цитата Сообщение от агерон Посмотреть сообщение
частота попадания в любой из 10000 интервалов (с вероятностью 99,999%) будет равна 1/500000 или 0,000002
Частоту не надо путать с вероятностью.
0
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
30.12.2010, 08:54  [ТС] 7
А как будет выглядить программа на Си просто
0
Просто Веталь
161 / 101 / 22
Регистрация: 11.05.2009
Сообщений: 628
30.12.2010, 09:04 8
https://www.cyberforum.ru/cpp-... 44753.html
0
Эксперт С++
5818 / 3470 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
30.12.2010, 14:29 9
Цитата Сообщение от Оленька* Посмотреть сообщение
А как будет выглядить программа на Си просто
Тебе нужен пример использования вышеопределенных функций?
1
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
02.01.2011, 12:08  [ТС] 10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
void main (void)
{
int i=0; int n; int r=0; int t; int j;
n=r*4231 + 123457;
for(;;r++)
{
r=r*4231 + 123457;
i++; j++;
if((n==r)&&(i<10000)
t++;
else
if(i==10000)
i=0;
 
if(j==500000)
break;
}
printf("%i",&t);
}

Вот так ,правильно?
P.S.(посто я пишу лабораторные и все програмы должны быть с использованием только одной библиотеки <stdio.h>)
0
Эксперт С++
5818 / 3470 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
03.01.2011, 21:11 11
Оленька*, мы уже написали функцию для генерации случайных чисел, поэтому лучше бы использовать ее, примерно так:
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include "mysrand.h>
 
int main()
{
    mysrand((size_t) time(NULL));
    printf("Random integer = %u\n", myrand());
    exit(0);
}
А насчет того, что "все програмы должны быть с использованием только одной библиотеки <stdio.h>" - для генерации случайных чисел мы вообще ничего не используем.
0
2 / 2 / 0
Регистрация: 15.12.2010
Сообщений: 58
09.01.2011, 14:28  [ТС] 12
Nameless One, можете пожалуйста помочь написать саму программу.

Только помоему если я не ошибаюсь там вместо "#include "mysrand.h>" должна быть "<conio.h>"
0
Эксперт С++
5818 / 3470 / 357
Регистрация: 08.02.2010
Сообщений: 7,448
09.01.2011, 14:32 13
Цитата Сообщение от Оленька* Посмотреть сообщение
Nameless One, можете пожалуйста помочь написать саму программу.
В смысле написать? Генератор тебе уже написали (и вроде бы даже это был я)
Цитата Сообщение от Оленька* Посмотреть сообщение
Только помоему если я не ошибаюсь там вместо "#include "mysrand.h>" должна быть "<conio.h>"
Неа, не должна
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.01.2011, 14:32

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Генератор псевдослучайных чисел
Всем привет. Как такое &quot;чудо&quot; пишеться, примерный алгоритм, если можно на псевдокоде: Написать...

Генератор псевдослучайных чисел
Народ, помогите плиз с решением этой задачи. Мне надо управляемый генератор равновесных...

Генератор псевдослучайных чисел.
Написать генератор псевдослучайных чисел по алгоритму r = r * 4231 + 123457; Подсчитать частоты...

Массивы,генератор псевдослучайных чисел.
Всем привет,помогите разобраться с 2 задачами. 1) Дана последовательность из n вещественных чисел....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.