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

rand в диапазоне... - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 67, средняя оценка - 4.96
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
27.07.2010, 17:13     rand в диапазоне... #1
не удаётся rand в диапазоне, так чтобы значения при каждой прогонке значения менялись.
к примеру - число из диапазона.
мой первый вариант.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <time.h>
#include <stdlib.h>
using namespace std;
 
int main()
{
    int shot;
    srand(time(NULL));
    shot=1+(10-1)*rand()/RAND_MAX;
    cout<<shot;
    return 0;
}
мой второй вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
 
int main()
{
    int shot;
        srand( (unsigned)time( NULL ) );
    shot=1+(10-1)*rand()/RAND_MAX;
    cout<<shot;
    return 0;
}
не меняют числа оба варианта, если не делить на RAND_MAX.
Подскажите как.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2010, 17:13     rand в диапазоне...
Посмотрите здесь:

C++ rand()
rand C++
rand C++
C++ rand от 1 до 16
rand()%(-20)%(20); C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
27.07.2010, 17:16     rand в диапазоне... #2
Например

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <ctime>
#include <cstdlib>
using namespace std;
 
int main()
{
        int shot;
        srand(time(NULL));
        shot=1+rand()%(10-1);
        cout<<shot;
        return 0;
}
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
27.07.2010, 17:18  [ТС]     rand в диапазоне... #3
это что будет из диапазона?
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2293 / 1663 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
27.07.2010, 17:20     rand в диапазоне... #4
velodro, а теперь без запинок русским языком объясни что тебе нужно сделать. Генерировать случайные числа из заданного диапазона? Если так:
C++
1
int n = min + rand() % (max - min); // n будет принадлежать диапазону [min, max)
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3781 / 1765 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
27.07.2010, 17:27     rand в диапазоне... #5
velodro, недавно была тема о генерации случайных чисел: Генерация случайных чисел (rand () % 6)
velodro
72 / 1 / 1
Регистрация: 28.11.2009
Сообщений: 78
27.07.2010, 17:28  [ТС]     rand в диапазоне... #6
извеняюсь за карявость сооющения.. изменял.. и не прочитал, прежде чем,опубликовать..

спаисибо всем!

CyBOSSeR дал верный способ и правильно меня понял!
Yandex
Объявления
27.07.2010, 17:28     rand в диапазоне...
Ответ Создать тему
Опции темы

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