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

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

Войти
Регистрация
Восстановить пароль
 
mansp
18 / 18 / 0
Регистрация: 07.11.2010
Сообщений: 136
#1

Перебор возможных значений для трёх чисел - C++

09.04.2012, 22:43. Просмотров 975. Ответов 11
Метки нет (Все метки)

Доброго времени суток.
Нужно перебрать все возможные значения трёх чисел. их сума равна 1. перебрать нужно с шагом 0,01, например 0,01 0,01 0,98 .
Заранее благодарен за помощь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.04.2012, 22:43
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Перебор возможных значений для трёх чисел (C++):

Перебор всех значений трёх булевых переменных - C++
Вобщем мне надо проверить функцию на тавтологию, для этого как я понимаю надо проверить чтобы конечная функция была всегда истинной при...

Перебор всех возможных подмножеств множества целых чисел - C++
Всем привет)))) Пожалуйста, помогите решить задачку!!!!! Очень нужно, срочно!!! Программа перебора всех возможных подмножеств множества...

Перебор всех возможных подмножеств заданного множества целых чисел - C++
Помогите решить задачу. Есть заданное множество целых чисел: -1 0 1. Нужно перебрать все возможные способы размещения в векторе, этих...

написать программу кальуклятор, для вычисления по запросу пользователя одной формулы из трёх возможных - C++
перед началом работы программа формирует информационное сообщение, в котором перечисляются формулы,которые могут быть вычеслены, а также...

Перебор возможных вариантов разреза трубы - C++
Доброго времени суток! Есть задача:"Вводится длина трубы, количество заготовок (1 .. 5), которые можно вырезать из трубы, и длина каждой...

Перебор и вывод всех возможных сочетаний - C++
Итак,здравствуйте форумчане. Привела меня к вам интересная задачка. Вводится слово,заранее не известно количество букв необходимо...

11
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
10.04.2012, 01:18 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
 
int main()
{
 float i,j,k;
 for (i=0;i<=100;i++)
  for (j=0;j<=100-i;j++)
   {
    k=100-i-j;
    std::cout<<i/100<<' '<<j/100<<' '<<k/100<<std::endl;
   }
 system("pause");
 return 0;
}
Добавлено через 52 минуты
только начальные значения 0 надо, а не 1. Исправил.
1
zss
Модератор
Эксперт С++
6486 / 6049 / 1987
Регистрация: 18.12.2011
Сообщений: 15,690
Завершенные тесты: 1
10.04.2012, 08:43 #3
А почему бы не сразу с шагом 0.01
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 int main()
{
 float i,j,k;
 for (i=0;i<=1.;i+=0.01)
  for (j=0;j<=1.0-i;j+=0.01)
   {
    k=1.0-i-j;
    std::cout<<i<<' '<<j<<' '<<k<<std::endl;
   }
 system("pause");
 return 0;
}
1
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
10.04.2012, 09:41 #4
Цитата Сообщение от zss Посмотреть сообщение
А почему бы не сразу с шагом 0.01
потому, что такое представление неточно
0
Evg
Эксперт CАвтор FAQ
18040 / 6272 / 428
Регистрация: 30.03.2009
Сообщений: 17,249
Записей в блоге: 28
10.04.2012, 10:12 #5
Nameless One, но ведь в печати

C++
1
std::cout<<i/100<<' '<<j/100<<' '<<k/100<<std::endl;
тоже родятся неточные числа. Какая разница, сразу их рожать, или в момент печати?
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
10.04.2012, 15:39 #6
Цитата Сообщение от Evg Посмотреть сообщение
Nameless One, но ведь в печати

C++
1
std::cout<<i/100<<' '<<j/100<<' '<<k/100<<std::endl;
тоже родятся неточные числа. Какая разница, сразу их рожать, или в момент печати?
Неточность меньше
ЗЫ сначала с шагом 0.01 делал
0
Evg
Эксперт CАвтор FAQ
18040 / 6272 / 428
Регистрация: 30.03.2009
Сообщений: 17,249
Записей в блоге: 28
10.04.2012, 15:50 #7
Я всё к тому, что логичнее вместо i/100 печатать что-то типа cout << "0." << i. Т.е. плавающее число именно рисовать (с учётом эффектов типа нужного дополнительного нуля и т.п.)

Добавлено через 57 секунд
Кстати, "i/100" работать не будет - это же цеслочисленное деление
0
Nameless One
Эксперт С++
5775 / 3425 / 255
Регистрация: 08.02.2010
Сообщений: 7,448
10.04.2012, 15:56 #8
Цитата Сообщение от Evg Посмотреть сообщение
Кстати, "i/100" работать не будет - это же цеслочисленное деление
там вообще i, j, k были float
0
Evg
Эксперт CАвтор FAQ
18040 / 6272 / 428
Регистрация: 30.03.2009
Сообщений: 17,249
Записей в блоге: 28
10.04.2012, 16:13 #9
Цитата Сообщение от Nameless One Посмотреть сообщение
там вообще i, j, k были float
Угу. Что-то у меня потемнение в глазах было Специально посмотрел, но почему-то увидел "int"
0
talis
10.04.2012, 16:18
  #10

Не по теме:

Кстати вот вопрос: по-хорошему операция деления менее эффективна, чем операция умножения на число с плавающей точкой (или это относится только к целочисленному делению?). Не лучше ли записать i * 0.01?

0
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,813
10.04.2012, 16:23 #11
Цитата Сообщение от Evg Посмотреть сообщение
логичнее вместо i/100 печатать что-то типа cout << "0." << i. Т.е. плавающее число именно рисовать (с учётом эффектов типа нужного дополнительного нуля и т.п.)
Я бы тоже так делал. По сути задача ни чем не отличается от перебора трёх целочисленных слагаемых, дающих в сумме 100, просто тумана напустили немного.
0
Evg
Эксперт CАвтор FAQ
18040 / 6272 / 428
Регистрация: 30.03.2009
Сообщений: 17,249
Записей в блоге: 28
10.04.2012, 16:50 #12
Цитата Сообщение от talis Посмотреть сообщение
Кстати вот вопрос: по-хорошему операция деления менее эффективна, чем операция умножения на число с плавающей точкой (или это относится только к целочисленному делению?). Не лучше ли записать i * 0.01?
Вопрос философский. 0.01 нельзя представить точно, в то время как 100.0 - можно. Хотя если не волнуют цифры в 7-8 знаке (или сколько там) после запятой, то умножение быстрее деления в разы
1
10.04.2012, 16:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.04.2012, 16:50
Привет! Вот еще темы с ответами:

Организовать перебор всех возможных сочетаний - C++
Затрудняюсь с алгоритмом. Как можно организовать перебор всех возможных группировок? Имеется несколько романов одного писателя. Для...

Реализовать перебор всех возможных IP-адресов (С++) - C++
Реализовать перебор всех возможных IP-адресов, начиная с 0.0.0.0, заканчивая 255.255.255.0. (проще говоря перебор всех возможных комбинаций...

Перебор всех возможных сочетаний заданных переменных - C++
Чтобы не создавать новую тему, напишу здесь. Есть несколько переменных - около 20, часть переменных может иметь 2 значения, часть - три...

Перебор всех возможных вариантов с переменными приравненных к определенному значению - C++
Помогите решить задачу: Есть 3 переменные А, В, С и у каждого из них какое-то целочисленное значение, которое задает пользователь. Нужно...


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

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

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