Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.81/47: Рейтинг темы: голосов - 47, средняя оценка - 4.81
2 / 2 / 2
Регистрация: 10.09.2015
Сообщений: 100
1

Как задать диапазон случайных чисел?

04.11.2016, 21:48. Показов 8452. Ответов 10
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Мне дана формула для диапазона случайных чисел - 10i + 20, где i мой вариант. Так вот, мой вариант 20, но как задать диапазон. Пробывал через 1 + rand() % 10 * i + 20, оно выдавало всегда числа больше 220, хотя по идеии должно от 1 до 220 выдавать. Как мне задать диапазон?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.11.2016, 21:48
Ответы с готовыми решениями:

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

Диапазон случайных чисел
Написал программку-угадайку случайного числа. Но возник вопрос. Использую функцию rand() и она все...

Задать массив из 10 вещественных чисел используя датчик случайных чисел
Подсчитать количество четных значений. Найти минимальный и максимальный элементы массива, указать...

Задать размерность вектору генератором случайных чисел
Привет) Ситуация следующая: Динамический вектор. Написать программу по формированию...

10
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
04.11.2016, 21:52 2
hardyaw,
1 + rand() % (10 * i + 20)
0
2 / 2 / 2
Регистрация: 10.09.2015
Сообщений: 100
04.11.2016, 21:56  [ТС] 3
Даценд,
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
#include "stdafx.h"
#include <iostream>
#include <cmath>
#include <time.h>
#include <iomanip>
using namespace std;
 
int main()
{
    const int a = 6, b = 5;
    int k = 1, i = 20;
    float table[a][b];
    srand(time(NULL));
    cout << "   |1|2|3|4|5|" << endl;
    cout <<  "___________________|" << endl;
    for (int i = 0; i < 6; i++)
    {
        for (int j = 0; j < 5; j++)
        {
            table[i][j] = 1 + rand() % (10 * i + 20);
            cout << k <<  " " << setw(3) << table[i][j];
        }
        k++;
    cout << endl;
}
 
    system("pause");
    return 0;
}
вот мой код, и почему то оно всеравно выдает числа больше чем нужно

p.s. немножко опечатался, формула 10*i + 50
0
79 / 67 / 28
Регистрация: 22.04.2016
Сообщений: 384
04.11.2016, 22:04 4
hardyaw, Попробуйте так:
C++
1
table[i][j] = 1 + rand() % 249;
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
04.11.2016, 22:07 5
Во первых, ничего, что i здесь
Цитата Сообщение от hardyaw Посмотреть сообщение
C++
11
int k = 1, i = 20;
и здесь объявляются:
Цитата Сообщение от hardyaw Посмотреть сообщение
C++
16
for (int i = 0; i < 6; i++)
Кроме этого последняя цифра числа при выводе это переменная k, которая выводится здесь:
Цитата Сообщение от hardyaw Посмотреть сообщение
C++
21
cout << k << " " << setw(3) << table[i][j];
Попробуйте так:
C++
16
17
18
19
20
21
22
23
24
25
26
for (int z = 0; z < 6; z++)
{
    cout << k;
    for (int j = 0; j < 5; j++)
    {
        table[z][j] = 1 + rand() % (10 * i + 20);
        cout << " " << setw(3) << table[z][j];
    }
    k++;
    cout << endl;
}
0
2 / 2 / 2
Регистрация: 10.09.2015
Сообщений: 100
04.11.2016, 22:07  [ТС] 6
Cтранно, перевключил вижлу, заработало, видно что то с ней было
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
04.11.2016, 22:07 7
Цитата Сообщение от hardyaw Посмотреть сообщение
table[i][j] = 1 + rand() % (10 * i + 20);
будет давать от 1 до (10 * i + 20) если нужно меньше то 1 которую добавлял в начале нужно вычесть
C++
1
table[i][j] = 1 + rand() % (10 * i + 20-1);
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
04.11.2016, 22:11 8
hardyaw,
Как оно могло заработать при ошибках, на которые указано в сообщении #5?
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
04.11.2016, 22:12 9
hardyaw, подключай в своей среде разработки C++11 и пользуйся инструментами из заголовочного файла random. Вот пример с целыми числами. Вот для чисел с плавающей точкой.
0
Модератор
Эксперт по электронике
8908 / 6677 / 918
Регистрация: 14.02.2011
Сообщений: 23,519
04.11.2016, 22:19 10
Цитата Сообщение от Даценд Посмотреть сообщение
Как оно могло заработать при ошибках, на которые указано в сообщении
а че бы ему не заработать
i которая объявлена в for перекрывает ту i которая 20
результаты правда не те будут что ждали
0
Эксперт .NET
5871 / 4748 / 2940
Регистрация: 20.04.2015
Сообщений: 8,361
04.11.2016, 22:24 11
Цитата Сообщение от ValeryS Посмотреть сообщение
результаты правда не те будут что ждали
Так я о том и говорю.
Плюс все числа при выводе будут заканчиваться цифрой - номером строки
0
04.11.2016, 22:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
04.11.2016, 22:24
Помогаю со студенческими работами здесь

Как задать диапазон rand
Как задать диапазон rand например от 3 до -5?

С помощью генератора случайных чисел ,задать значения элементов массива
Ввести с клавиатуры размерность одномерного массива . С помощью генератора случайных чисел...

Как задать диапазон с помощью функции rand?
В задаче говорится &quot;Дан массив целых чисел (размер – случайное число из диапазона )&quot;. Как задать...

(STL) Как самому задать диапазон удаляющий элементов ?
тут удаляется три элемента, а как после компиляции самому задать этот диапазон ? list&lt;T&gt;::iterator...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru