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

Случайные числа! random() - C++

Восстановить пароль Регистрация
 
Owen04
 Аватар для Owen04
5 / 5 / 3
Регистрация: 25.12.2009
Сообщений: 144
16.11.2012, 18:57     Случайные числа! random() #1
Доброго время суток!
У меня возник вопрос, как сделать рандом от -0,3 до 0,3!

Из за того, что ничего нормального не нашел, делал так:
C++
1
2
3
4
5
int i=rand()%7; // от 0 до 6
 if (i<4)
  x=i/10;  //если i=(1) (2) или (3), то x будет 0,1 0,2 0,3
  else
  x=-(0,7-i/10); //если i=(4) (5) или (6), то x будет (-0,3) -0,2 (-0,1)
Но хотел бы узнать как правильно!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2012, 18:57     Случайные числа! random()
Посмотрите здесь:

Случайные числа C++
Случайные числа C++
C++ случайные числа
Случайные числа C++
случайные числа C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Croessmah
Модератор
Эксперт С++
 Аватар для Croessmah
11836 / 6815 / 770
Регистрация: 27.09.2012
Сообщений: 16,898
Записей в блоге: 2
Завершенные тесты: 1
16.11.2012, 19:01     Случайные числа! random() #2
как вариант генерируйте от -300 до 300 и делите на 1000
ForEveR
Модератор
Эксперт C++
 Аватар для ForEveR
7927 / 4709 / 318
Регистрация: 24.06.2010
Сообщений: 10,524
Завершенные тесты: 3
16.11.2012, 19:13     Случайные числа! random() #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <random>
#include <ctime>
#include <iostream>
 
int main()
{
   std::mt19937 gen(time(0));
   std::uniform_real_distribution<> dist(-0.3, 0.3);
   for (size_t i = 0; i < 10; ++i)
   {
        std::cout << dist(gen) << std::endl;
   }
}
http://ideone.com/DSJHI2
Kuzia domovenok
 Аватар для Kuzia domovenok
1882 / 1737 / 116
Регистрация: 25.03.2012
Сообщений: 5,907
Записей в блоге: 1
16.11.2012, 19:38     Случайные числа! random() #4
Десятичные дроби вводятся через точку.
Запятая - это другой оператор, возвращающий значение правого операнда
в результате получите х=-(7-i/10)=-7
так как деление целочисленное
(об этом, похоже ты тоже забыл).
Owen04
 Аватар для Owen04
5 / 5 / 3
Регистрация: 25.12.2009
Сообщений: 144
16.11.2012, 20:18  [ТС]     Случайные числа! random() #5
Это я случайно нажал "," )

Тут писал кусок кода, а не вставлял
Хулиган
 Аватар для Хулиган
85 / 80 / 12
Регистрация: 08.08.2012
Сообщений: 737
16.11.2012, 20:18     Случайные числа! random() #6
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include <iostream>
#include <ctime>
#include <vector>
using namespace std;
 
int main() {
    srand(time(NULL));  
    vector<double> r;  //ñîçäГ*ВёГ¬ ГЄГ®Г*ГІГҐГ©Г*ГҐГ° êîòîðûé áóäåò ñîäåðæГ*ГІГј ГўГ±ГҐ âîçìîæГ*ûå Г§Г*Г*Г·ГҐГ*ГЁГї äëÿ Г*Г*ГёГЁГµ ïðåäåëîâ
    double pr1, pr2, i;
    cout<<"Ââåäèòå ïðåäåëû pr1, pr2:";  // ââîäèì ïðåäåëû
    cin>>pr1>>pr2;
    
    for(double i=pr1; i<=pr2; i=i+0.1) {  // Г§Г*ïîëГ*ГҐГ*ГЁГҐ ГЄГ®Г*ГІГҐГ©Г*ГҐГ°Г*
              r.push_back(i);
              }
    vector<double>::iterator ini, end;
    ini=r.begin();
    end=r.end();
    random_shuffle(ini, end);  //  ГІГіГ±ГіГҐГ¬ ГЄГ®Г*ГІГҐГ©Г*ГҐГ°
    cout<<"random:"<<r[1];   //  ГўГ»ГўГ®Г¤ГЁГ¬ ïåðâûé ýëåìåГ*ГІ, ГЄГ*æäûé Г°Г*Г§ âûâîäèòñÿ Г§Г*Г*Г·ГҐГ*ГЁГҐ îòëè÷Г*îå îò ïðåäûäóøåãî
  
}
Yandex
Объявления
16.11.2012, 20:18     Случайные числа! random()
Ответ Создать тему
Опции темы

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