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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 822
Записей в блоге: 1
#1

Random for double:( - C++

10.09.2013, 23:27. Просмотров 2112. Ответов 21
Метки нет (Все метки)

Задание: Создать функцию random(a, b), которая возвращает случайное вещественное число от вещественного числа a включительно до вещественного числа b не включительно.

И что такое static_cast<double>?

Похожие задания:
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
#include <iostream>
#include <cstdlib> // для использования генератора случайных чисел
#include <ctime>   // функции времени для инициализации генератора с. ч.
 
using namespace std;
 
int main() {
  srand(unsigned(time(0))); // инициализации генератора с. ч.
 
  // rand() генерирует псевдослучайное целое число от 0 до 
  // константы RAND_MAX, значение которой не меньше, чем 32767
 
  // Случайное целое от 0 до 99
  int n1 = rand() % 100;
  cout << n1 << endl;
 
  // Случайное целое от a=10 до b=99
  const int a = 10;
  const int b = 100;
  int n2 = rand() % (b - a) + a;
  cout << n2 << endl;
 
  // Случайное вещественное от 0 до 1
  double d = static_cast<double>(rand()) / RAND_MAX;
  cout << d << endl;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2013, 23:27     Random for double:(
Посмотрите здесь:

C2440 "Невозможно преобразовать double в double" - C++
// ConsoleApplication3.cpp: определяет точку входа для консольного приложения. // #include &quot;stdafx.h&quot; #include &lt;iostream&gt; ...

typedef double (*d)(double); - C++
//--------------------------------------------------------------------------- #include &quot;math.h&quot; #include &lt;stdio.h&gt; #include...

Перевод double to double - C++
Всем привет! проблема такая : Есть вектор типа double. Из него надо считать число в переменную, которая тоже имеет тип double. Считываю...

Ошибка "Невозможно преобразовать аргумент 1 из "double" в "double *" - C++
#include &lt;iostream&gt; #include &lt;cmath&gt; using namespace std; double f(double *a, double x) { double k = 0; int n; for (int i = 0;...

random - C++
R=random(101)/100.; Это генератор случайных чисел (0;1)?

random - C++
Нужно сгенерировать случайное число двух значное как это сделать ? Visual C++ Гуглил но только это . #include &lt;iostream&gt; using...

Random - C++
для чего пишем srand(time(0)); ? srand(time(0)); int a = rand() % N;

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 822
Записей в блоге: 1
11.09.2013, 17:32  [ТС]     Random for double:( #16
Цитата Сообщение от Nekto Посмотреть сообщение
Если b-a имеет только целую часть, то по твоей формуле по идее окончательный ответ тоже будет иметь только целую часть+дробную от а.
Не работает ни Toshkarik'a программа,не твоя Nekto...
Она выводит либо одно и то же число,либо с небольшим различием ,допустим 6.00125,6.00130 и так по несколько раз.....

Добавлено через 4 минуты
Цитата Сообщение от Nekto Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// drand.cpp : Defines the entry point for the console application.
//
 
#include "stdafx.h"
#include <cstdlib>
#include <cmath>
#include <iostream>
 
double DRand2 (double a, double b) {
  return a+static_cast<double>(std::rand())/RAND_MAX*(b-a);
  }
 
double DRand( double a, double b ) {
   return a + std::fmod( static_cast< double >( std::rand()), b - a );
}
 
int _tmain(int argc, _TCHAR* argv[])
{
  for (double a=0, b=1;a<20;++a,b+=2)
    std::cout<<a<<" "<<b<<" Rand: "<<DRand(a,b)<<" Rand2: "<<DRand2(a,b)<<std::endl;
    return 0;
}
Что вообще вот это такое??
C++
1
2
3
4
// drand.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 822
Записей в блоге: 1
11.09.2013, 17:36  [ТС]     Random for double:( #17
Так всегда выводит одно и тоже..
Миниатюры
Random for double:(  
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
11.09.2013, 23:51     Random for double:( #18
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Так всегда выводит одно и тоже..
srand(time(0)); в начале программы Т_Т http://en.cppreference.com/w/cpp/numeric/random/srand
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 822
Записей в блоге: 1
12.09.2013, 22:12  [ТС]     Random for double:( #19
Цитата Сообщение от Nekto Посмотреть сообщение
srand(time(0)); в начале программы Т_Т http://en.cppreference.com/w/cpp/numeric/random/srand
Спасибо,но все же...
Когда я запускаю в цикле for от 1 до 100,все нормально выводит разные числа.
Как убираю for и запускаю по несколько раз,то вывод возвращает только меняя сотые и тысячные....
Т.е. 75.165
75.175
...
75.250
....
и тому подобное...
Вопрос почему так??????????????????????
Миниатюры
Random for double:(   Random for double:(  
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
12.09.2013, 23:38     Random for double:( #20
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Спасибо,но все же...
Когда я запускаю в цикле for от 1 до 100,все нормально выводит разные числа.
Как убираю for и запускаю по несколько раз,то вывод возвращает только меняя сотые и тысячные....
Т.е. 75.165
75.175
...
75.250
....
и тому подобное...
Вопрос почему так??????????????????????
Потому что псевдогенератор.
DmitryM5
Love~
51 / 51 / 3
Регистрация: 27.08.2013
Сообщений: 822
Записей в блоге: 1
12.09.2013, 23:52  [ТС]     Random for double:( #21
Цитата Сообщение от Nekto Посмотреть сообщение
Потому что псевдогенератор.
Спасибо,но не совсем понятно что это
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.09.2013, 23:57     Random for double:(
Еще ссылки по теме:

Random - C++
Помогите,пожалуйста, подкорректировать текст проги так,что был массив задавался рандомно,а не вводился как у меня вручную. #include...

random - C++
Доброго времени суток! Вопрос прост: для генерации случайных чисел всегда пользовался rand(), но тут что то вдруг добрался до random(), но...

Random - C++
Всем привет! Столкнулся с проблемой: по программе должен нажать S, и после этого из списка 1.cpp ... 50.cpp должен выбраться один...

Работа с random - C++
Доброго времени суток! У меня есть массив int a={10,20,30,40,50}. Можно сделать так, чтобы выводились эти числа рандомом и не...

RANDOM в циклах - C++
Вот программка выдающая 10 клонов случайного числа от 0 до 9, что в ней надо изменить, чтобы все числа были рандомные, то есть разные?...


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

Или воспользуйтесь поиском по форуму:
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
12.09.2013, 23:57     Random for double:( #22
Цитата Сообщение от DmitryM5 Посмотреть сообщение
Спасибо,но не совсем понятно что это
Первое число слишком линейно зависит от времени и поэтому лишь немного меняется, если запускать srand(time(0)); быстро подряд. Если хочешь действительно рендомные числа, то с помощью rand() их не получишь.
Yandex
Объявления
12.09.2013, 23:57     Random for double:(
Ответ Создать тему
Опции темы

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