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

Как указать диапазон генерации случайных чисел? - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 149, средняя оценка - 4.63
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
10.06.2010, 18:13     Как указать диапазон генерации случайных чисел? #1
Возник довольно глупый вопрос,как указать диапазон генерации случайных чисел в C++...
int a=random(10); - тут генерируются числа от 1 до 9, а как сделать к примеру генерацию чисел от
[-15,20]?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.06.2010, 18:13     Как указать диапазон генерации случайных чисел?
Посмотрите здесь:

C++ Диапазон случайных чисел
Как использовать генератор случайных чисел? C++
Пару вопрос по генерации случайных чисел. C++
C++ Функция генерации случайных чисел
C++ Как объявить переменную, как диапазон чисел
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.07.2010, 15:00     Как указать диапазон генерации случайных чисел? #21
Цитата Сообщение от odip Посмотреть сообщение
надо int64_t использовать
а в мелкостудии/борланд-турбо-шмурбо-цэ будет работать? double - всё-таки стандартный тип данных, обеспечивающий точность как-раз в 10 десятизначных цифр.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyBOSSeR
Эксперт C++
 Аватар для CyBOSSeR
2294 / 1664 / 86
Регистрация: 06.03.2009
Сообщений: 3,675
20.07.2010, 15:18     Как указать диапазон генерации случайных чисел? #22
Цитата Сообщение от easybudda Посмотреть сообщение
мелкостудии

Не по теме:

В моем присутствии прошу не выражатся


В MSVS работать будет. А вот насчет BCB и ему подобных не уверен.
MikeSoft
Эксперт C++
 Аватар для MikeSoft
3782 / 1766 / 85
Регистрация: 21.11.2009
Сообщений: 2,540
20.07.2010, 15:31     Как указать диапазон генерации случайных чисел? #23
easybudda, и в Билдере будет работать.
В билдере, к тому же, есть тип данных __int64
По сути, обычная обёртка.
odip
Эксперт C++
 Аватар для odip
7225 / 3287 / 58
Регистрация: 17.06.2009
Сообщений: 14,165
21.07.2010, 07:55     Как указать диапазон генерации случайных чисел? #24
а в мелкостудии/борланд-турбо-шмурбо-цэ будет работать? double - всё-таки стандартный тип данных, обеспечивающий точность как-раз в 10 десятизначных цифр.
int64_t - стандартный тип
Устаревшие компиляторы, не поддерживающие новые стандарты - эти проблемы тех, кто их использует.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
21.07.2010, 12:15     Как указать диапазон генерации случайных чисел? #25
ну тогда вот:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <time.h>
 
int64_t long_random(void){
    return (int64_t)(rand() % 1001 + 5000) * 1000000 + (int64_t)(rand() % 1000) * 1000 + (int64_t)(rand() % 1000);
}
 
int main(void){
    int i;
 
    srand(time(NULL));
 
    for ( i = 0; i < 10; ++i )
        printf("%lld\n", long_random());
 
    exit(EXIT_SUCCESS);
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2010, 17:26     Как указать диапазон генерации случайных чисел?
Еще ссылки по теме:

Генератор случайных чисел. Как прикрепить? C++
Указать диапазон, в котором находится число C++
Формула для генерации случайных чисел заданного диапазона C++

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

Или воспользуйтесь поиском по форуму:
maxteam
2 / 2 / 0
Регистрация: 04.07.2010
Сообщений: 66
21.09.2010, 17:26     Как указать диапазон генерации случайных чисел? #26
вот я нуб))))))))

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
int random_beetwen(int a,int b)
{
int x;
randomize();
if(a<b)
  {
  int temp;
  randomize();
  x=abs(random(b)-random(a));
 
  if(x<=(b-a))
    {
    randomize();
    if(temp=random(2)) x=b-x;
    else x+=a;
    }
  if(x>(b-a)&&x<a)
    {
    if(a==0) a+=1;
    if(x<=b/a) x*=2;
    else
      {
      x=a-x;
      randomize();
      if((temp=random(2))) x=b-x;
      else x+=a;
      }
    }
    return x;
  }
  else
  {
  puts("incorect range...");
  return 0;
  }
};
Yandex
Объявления
21.09.2010, 17:26     Как указать диапазон генерации случайных чисел?
Ответ Создать тему
Опции темы

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