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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tromb.92
10 / 10 / 1
Регистрация: 21.11.2009
Сообщений: 34
#1

трабл с генерацией псевдослучайных чисел - C++

19.12.2009, 12:28. Просмотров 335. Ответов 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
26
27
28
29
30
31
32
33
34
35
36
37
38
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int gen_random( int range_min, int range_max );
 
/* ================================================================ */
int main( int argc, char *argv[] ) {
        
int range_min, range_max, rand_val;
 
 
srand( time( NULL ) );
 
if ( argc!=1+2 ) {
        fprintf( stderr, "Usage: gen_random range_min range_max\n" ); exit( 1 );
}
 
range_min= atoi( argv[1] );
range_max= atoi( argv[2] );
rand_val= gen_random( range_min, range_max );
 
printf( "random value in range [%d;%d] is %d\n", range_min, range_max, rand_val );
 
return 0;
 
} /* main() */
 
/* ================================================================ */
int gen_random( int range_min, int range_max ) {
 
if ( range_min>range_max ) {
        fprintf( stderr, "gen_random(): Invalid arguments\n" ); exit( 1 );
}
 
return range_min+rand()%(range_max-range_min+1);
        
} /* gen_random() */
не моглибы вы подсказать как ее упростить а то я плохо еще освоил Си а уж очень надо генератор псевдослучайных чисел.....
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2009, 12:28     трабл с генерацией псевдослучайных чисел
Посмотрите здесь:

Проблемка с генерацией случайных чисел - C++
Доброго дня, уважаемые форумчане Имею нижеследующий код for(int i_o = 0; i_o &lt; init_arr; i_o++) //for(int i_o = 0; i_o &lt; 1;...

Генерацией массива чисел циклом - C++
Нужно сгенерировать 10 разных значений, не равных переменной First Я не придумал ничего лучше (случайные значения записываются в массив) ...

C++11 генерация псевдослучайных чисел - C++
Хотел заполнить матрицу максимального потребления ресурсов процессами (алгоритм банкира), но при генерации чисел возникла проблема (ошибка...

Генерация псевдослучайных чисел!!! - C++
Помогите кто чем может!!пожалуйста! Составьте программу, реализующую линейный конгруэнтный ГПСЧ, и способную генерировать случайные...

Генерация псевдослучайных чисел.с++ - C++
Метод середины квадратов, у меня программа вычисляет одно число, а надо 125. Как сделать чтоб выводило 125 . Цикл?

Генерация псевдослучайных чисел - C++
Здравствуйте! Пишу программу, в ней мне нужно использовать случайные числа, сгенерированные в заданном диапазоне. Подскажите пожалуйста,...

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

Гренератор псевдослучайных действительных чисел - C++
. Не подскажите ли идею алгоритма такого генератора? Мне кроме деления целого действительного числа ничего в голову не лезет, но не прямой...

Генератор псевдослучайных чисел - проблема. - C++
Очень нужно написать программу-генератор псевдослучайных чисел на языке С. Насколько я понимаю должна использоваться функция rand, но она...

Генерация алгоритмов псевдослучайных чисел - C++
Помогите пожалуйста! Не могу написать код программы. Даже не знаю с какой стороны подступиться,а скоро сессия:wall: Заранее благодарна....


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
valeriikozlov
Эксперт C++
4669 / 2495 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
19.12.2009, 12:51     трабл с генерацией псевдослучайных чисел #2
Вот упрощенная версия этого кода:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int a, range_min, range_max;
    srand( time( NULL ) );
    scanf("%d", &range_min);
    scanf("%d", &range_max);
    a=range_min+rand()%(range_max-range_min+1);
    printf("%d\n",a);
    return 0;
}
Т.е. сначало вводите минимум диапазона, затем максимум. После этого программа выводит на экран случайное число из этого диапазона.
Если например Вы уже знаете диапазон, то этот код еще больше можно упростить.
Например нужно случайное число в диапазоне от 1 до 10 (включительно). То код будет выглядеть так:
C
1
2
3
4
5
6
7
8
9
10
11
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    int a;
    srand( time( NULL ) );
    a=rand()%(10)+1;
    printf("%d\n",a);
    return 0;
}
Ответ Создать тему
Опции темы

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