0 / 0 / 0
Регистрация: 18.03.2017
Сообщений: 13
1

Как сгенерировать случайные числа в заданном интервале?

31.03.2017, 11:31. Показов 971. Ответов 3
Метки нет (Все метки)

как правильно сгенерировать вещественный массив на промежутке [0;50)?
C++
1
 mas [i]= (float)(rand()%20001)/50);
вроде правильно сделал, а в компиляторе появляются числа больше 50
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
31.03.2017, 11:31
Ответы с готовыми решениями:

Сгенерировать случайные числа с плавающей точкой в заданном диапазоне, включающем и отрицательные значения
возникла проблема, не могу решить... раньше когда пользовался функ. ( x + rand() % x ) с целыми...

Сгенерировать случайные действительные числа в заданном диапазоне
Сгенерировать число равномерно от 0 до 1-это у меня получается: int main() { double a = {...

Как сгенерировать случайные числа?
Как сгенерировать случайные числа?

Как сгенерировать такие случайные числа?
4287709036.32353 5765613642.35294 7896396583.23529 и как перевести такое число в...

3
7100 / 6095 / 2780
Регистрация: 14.04.2014
Сообщений: 26,225
31.03.2017, 12:14 2
C++
1
mas[i] = static_cast<float>(rand()) / RAND_MAX * 49;
0
5 / 5 / 2
Регистрация: 25.11.2016
Сообщений: 71
31.03.2017, 12:16 3
так подойдет?
за 50 не выходит
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
#include<iostream>
#include<ctime>
using namespace std;
 
int main() {
    setlocale(LC_ALL, "Russian");
    srand(time(NULL));
 
    const int size = 50;
    float arr[size]{};
    int i{}, j{};
 
    for (int i = 0; i < size; i++) {
        arr[i] = (float)(rand() % 2550)/50;
    }
    for (i = 1; i < size; i++)
        for (j = 0; j < i; j++)
            if (arr[i] == arr[j]) { 
                arr[i] = rand() % size + 1;  
                j = -1;  
            }
 
    for (int i = 0; i < size - 1; i++) {
        for (int j = 0; j < size - i - 1; j++) {
            if (arr[j] > arr[j + 1]) {
                swap(arr[j], arr[j + 1]);
            }
        }
    }
 
    for (i = 0; i < size; i++) {
        cout << arr[i] << " | ";
    }
    cout << endl;
}
0
Форумчанин
Эксперт CЭксперт С++
8170 / 5020 / 1436
Регистрация: 29.11.2010
Сообщений: 13,453
31.03.2017, 13:03 4
Цитата Сообщение от DeniskaCa Посмотреть сообщение
как правильно сгенерировать вещественный массив на промежутке [0;50)?
C++14
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <algorithm>
#include <array>
#include <iostream>
#include <iterator>
#include <random>
 
int main()
{
    std::array<double, 20> arr;
    std::mt19937 gen { std::random_device()() };
    std::uniform_real_distribution<> dist(0, 49.9);
    std::generate(std::begin(arr), std::end(arr), [&dist, &gen] { return dist(gen); });
    std::copy(std::cbegin(arr), std::cend(arr), std::ostream_iterator<double>(std::cout, "\n"));
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
31.03.2017, 13:03

Как сгенерировать случайные числа в диапазоне от Ν до M, Z число раз
Здравствуйте. Я пишу небольшую программку и в ней мне нужно сгенерировать случайные вещественные...

Сгенерировать случайные числа
сгенерировать случайные числа 1) целое в интервале от 0 до 67. 2) целое двухзначное. 3)...

Сгенерировать случайные числа
Ребята, интересует такой вопрос. Ниже представлен кусок кода, который, так сказать, генерирует мат....

Сгенерировать случайные числа в диапазоне от 1 до 20
Задача такова: Нужно написать рендум чисел в диапазоне например от 1 до 20 (не имеет значения). С...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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