Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402

проблема с rand, как сделать чтоб в промежутке выдавал не только целые чила

09.11.2011, 19:32. Показов 1955. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача такая, если у задается произвольно на промежутке (0,1) то в зависимости от того какое значение она получает, в зависимости от него мы считаем х. Проблема в том что у меня получилось rand для у сделать, но выдает только целые значения 0 и 1, а хотелось бы и промежуточные между ними типа 0.8965372, Как такого с rand можно добиться


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
#include "stdafx.h"
#include <locale.h>
#include <math.h>
#include "iostream"
#include "conio.h"
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "Russian");
    float x, y;
    for (int i=0; i<10; i++)
        {
            // задаем произвольно у от 0 до 1 
            int range = 1; // Разница между минимумом и максимумом 
            int min = 0;// Левая граница нужного промежутка.
            y = rand() % (range+1) + min;
            
            // условия у для графиков
            if(y<=0.5) x = 2*y+2;
            else x = 5-sqrt(8*(1-y));
            cout << "y" << i <<"="<< y <<" \n";
            cout << "x" << i <<"="<< x <<" \n";
        }
                system("pause");
        exit(0);
        _getch();
 
    return 0;
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.11.2011, 19:32
Ответы с готовыми решениями:

Как сделать, чтоб компьютер выдавал при загрузке только один звуковой сигнал?
Здравствуйте и с Новым Годом всех!! Хочу спросить может знаете как сделать чтоб компьютер выдавал при загрузке только один звуковой сигнал...

Как сделать чтобы rand() выдавал в массив неповторяющиеся числа?
Короче смысл такой. Программка почти дописана, задача стояла такая: Написать метод /функцию, которая решает задачу простым перебором...

Как сделать так, чтоб офис не выдавал никаких предупреждений и сразу выполнял макрос?
как сделать так, чтоб офис не выдовал никаких предупреждений и сразу выполнял то что требуется.. ?

4
3 / 3 / 2
Регистрация: 06.11.2011
Сообщений: 38
09.11.2011, 19:57
Попробуйте поделить полученный результат на какое-нибудь число, типа:

C++
1
y = (rand() % (range+1) + min) / (static_cast<double>(rand() % 10) + 1);
Добавлено через 1 минуту
Кстати, поделитесь секретом, зачем так жёстко сделано у вас?

C++
1
2
3
4
system("pause");
exit(0);
_getch();
return 0;
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
09.11.2011, 20:05  [ТС]
Кстати, поделитесь секретом, зачем так жёстко сделано у вас?

C++
1
2
3
4
system("pause");
exit(0);
_getch();
return 0;
[/QUOTE]

у ми иначе экран с выводом мигает и исчезает, поэтому так жестко и привычно уже

Добавлено через 36 секунд
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
#include "stdafx.h"
#include <locale.h>
#include <math.h>
#include "iostream"
#include "conio.h"
#include <ctime>
using namespace std;
 
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale (LC_ALL, "Russian");
    float x, y;
    for (int i=0; i<10; i++)
        {
            // задаем произвольно у от 0 до 1 
            y = 1.0 * rand() / RAND_MAX;
            
            // условия у для графиков
            if(y<=0.5) x = 2*y+2;
            else x = 5-sqrt(8*(1-y));
            cout << "y" << i <<"="<< y <<" \n";
            cout << "x" << i <<"="<< x <<" \n";
        }
                system("pause");
        exit(0);
        _getch();
 
    return 0;
}
Извините за беспокойство все сделала, кому интересно выше готовый код
0
237 / 210 / 29
Регистрация: 08.06.2011
Сообщений: 467
09.11.2011, 20:19
Цитата Сообщение от White Luna Посмотреть сообщение
хотелось бы и промежуточные между ними типа 0.8965372, Как такого с rand можно добиться
C
1
(double)rand() / (double)RAND_MAX
Добавлено через 10 минут
опоздал
0
 Аватар для White Luna
33 / 27 / 2
Регистрация: 08.09.2010
Сообщений: 402
10.11.2011, 17:57  [ТС]
Net_Wanderer, но не на много))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.11.2011, 17:57
Помогаю со студенческими работами здесь

Бот VK. Как сделать так, чтоб при непонятном сообщении он выдавал сообщение "Не понял команды"
Пробовал через else, ничего не получается case 'confirmation': echo $confirmation_token; break; case...

Как сделать, чтобы мой поисковик работал с поиском только символов и выдавал при этом результат?
Прошу помогите! Хочу чтобы значении в переменной дали результат при поиске числа 27 и '27'. &gt;&gt;&gt; l = &gt;&gt;&gt; l ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru