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

Случайные ВЕЩЕСТВЕННЫЕ числа - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 86, средняя оценка - 4.90
Sasuke
 Аватар для Sasuke
0 / 0 / 0
Регистрация: 09.10.2009
Сообщений: 89
26.11.2009, 21:49     Случайные ВЕЩЕСТВЕННЫЕ числа #1
Подскажите, как использовать rand(), чтобы он смог придать переменной случайное вещественное число.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Esc
 Аватар для Esc
4 / 4 / 1
Регистрация: 16.11.2009
Сообщений: 19
26.11.2009, 22:10     Случайные ВЕЩЕСТВЕННЫЕ числа #2
так наверно : a = (float) rand()
Sasuke
 Аватар для Sasuke
0 / 0 / 0
Регистрация: 09.10.2009
Сообщений: 89
26.11.2009, 22:34  [ТС]     Случайные ВЕЩЕСТВЕННЫЕ числа #3
ESC, нет, это что-то не то --"
Жестянка
сцуко киборг
 Аватар для Жестянка
102 / 29 / 2
Регистрация: 11.09.2008
Сообщений: 193
26.11.2009, 22:50     Случайные ВЕЩЕСТВЕННЫЕ числа #4
ну, например, как-то так:

float x=0.001*rand() %10000;
Sasuke
 Аватар для Sasuke
0 / 0 / 0
Регистрация: 09.10.2009
Сообщений: 89
26.11.2009, 22:55  [ТС]     Случайные ВЕЩЕСТВЕННЫЕ числа #5
Жестянка, не работает.
Esc
 Аватар для Esc
4 / 4 / 1
Регистрация: 16.11.2009
Сообщений: 19
26.11.2009, 22:55     Случайные ВЕЩЕСТВЕННЫЕ числа #6
http://www.cyberforum.ru/cpp/thread5044.html
вот здесь ещё посмотри
Sasuke
 Аватар для Sasuke
0 / 0 / 0
Регистрация: 09.10.2009
Сообщений: 89
26.11.2009, 23:10  [ТС]     Случайные ВЕЩЕСТВЕННЫЕ числа #7
Esc, да я смотрел уже эту тему, но ничего толкового там не увидел. Может будут еще варианты?
Rififi
 Аватар для Rififi
2332 / 1047 / 43
Регистрация: 03.05.2009
Сообщений: 2,656
26.11.2009, 23:20     Случайные ВЕЩЕСТВЕННЫЕ числа #8
Sasuke,

Подскажите, как использовать rand(), чтобы он смог придать переменной случайное вещественное число.

Boost.Random умеет генерировать случайные вещественные числа
смотреть здесь: http://www.boost.org/doc/libs/1_41_0...ributions.html
valeriikozlov
Эксперт C++
 Аватар для valeriikozlov
4660 / 2486 / 321
Регистрация: 18.08.2009
Сообщений: 4,550
26.11.2009, 23:42     Случайные ВЕЩЕСТВЕННЫЕ числа #9
Немного переделал код, из раздела случайные числа на форуме. Переменная rang_double - задает количество знаков после запятой, которые будут случайно выбираться.
C
1
2
3
4
5
6
7
8
9
10
11
12
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>
int main()
{        
int range_min=-20, range_max=20, rang_double=4;
srand( time( NULL ) );
double a=range_min+1+rand()%(range_max-range_min+1)-(rand()%((int)pow(10,rang_double))/pow(10,rang_double)); 
printf( "%lf\n", a );
return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9383 / 5433 / 916
Регистрация: 25.07.2009
Сообщений: 10,428
27.11.2009, 01:23     Случайные ВЕЩЕСТВЕННЫЕ числа #10
Ещё вариант...
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void){
    int i;
    
    srand(time(NULL));
    
    for ( i = 0; i < 10; i++)
        printf("%.4f\n", ((double)(rand() % 100) / (double)(rand() % 100)) * (( rand() % 2) ? 1 : -1));
        
    exit(0);
}
n0n4m3r
23 / 23 / 6
Регистрация: 12.10.2013
Сообщений: 183
29.11.2013, 02:22     Случайные ВЕЩЕСТВЕННЫЕ числа #11
Рещил так:
float(1+rand()%100000)*pow(0.1,rand()%5);
textyreee
2 / 2 / 0
Регистрация: 05.01.2014
Сообщений: 82
03.05.2015, 12:29     Случайные ВЕЩЕСТВЕННЫЕ числа #12
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
srand(time(NULL));
    for (int i = 0; i < N; i++)
    {
        for (int j = 0; j < M; j++)
        {
            matr[i][j] = static_cast<double>(rand() % 100) / 10;
        }
    }
    for (int i = 0; i < N; i++)
    {
        cout << endl;
        for (int j = 0; j < M; j++)
            cout << setw(5) << matr[i][j];
    }
Krock21rus
73 / 73 / 19
Регистрация: 18.11.2013
Сообщений: 369
Завершенные тесты: 2
03.05.2015, 12:40     Случайные ВЕЩЕСТВЕННЫЕ числа #13
оговорите рамки, вещественное число от скольки до скольки?
C++
1
double r = (double)(rand()%10000)/(double)10000+(double)(rand()%10000);
случайное вещественное число от 0 до 10000

Добавлено через 50 секунд
Цитата Сообщение от n0n4m3r Посмотреть сообщение
Рещил так:
float(1+rand()%100000)*pow(0.1,rand()%5);
rand() выдаёт число до 36000)
volvo
Супер-модератор
 Аватар для volvo
22087 / 14392 / 4049
Регистрация: 22.10.2011
Сообщений: 25,473
Записей в блоге: 2
03.05.2015, 12:41     Случайные ВЕЩЕСТВЕННЫЕ числа #14
Прямо за 5 лет ТС еще не додумался, как сгенерировать вещественное число. textyreee, на кой ты эту тему выкопал?
textyreee
2 / 2 / 0
Регистрация: 05.01.2014
Сообщений: 82
03.05.2015, 13:55     Случайные ВЕЩЕСТВЕННЫЕ числа #15
Бывает
А вообще, я сам сегодня искал и гугл то в основном выдает запросы с CF, как старые, так и новые. Поэтому следующий человечек, который будет искать то же самое, что и я, найдет ответ здесь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.05.2015, 13:58     Случайные ВЕЩЕСТВЕННЫЕ числа
Еще ссылки по теме:

C++ Вещественные числа и округление
Даны вещественные числа A1, A2, A3 C++
Вещественные числа C++
C++ Нужно чтобы случайные числа вставали в конец массива,а не удаляли числа

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

Или воспользуйтесь поиском по форуму:
nmcf
4441 / 3779 / 1278
Регистрация: 14.04.2014
Сообщений: 14,872
03.05.2015, 13:58     Случайные ВЕЩЕСТВЕННЫЕ числа #16
Пора уже пользоваться <random>, а не древними функциями.
Yandex
Объявления
03.05.2015, 13:58     Случайные ВЕЩЕСТВЕННЫЕ числа
Ответ Создать тему
Опции темы

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