18 / 18 / 7
Регистрация: 07.11.2010
Сообщений: 136
1

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

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

Author24 — интернет-сервис помощи студентам
Доброго времени суток.
Нужно перебрать все возможные значения трёх чисел. их сума равна 1. перебрать нужно с шагом 0,01, например 0,01 0,01 0,98 .
Заранее благодарен за помощь
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.04.2012, 22:43
Ответы с готовыми решениями:

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

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

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

11
347 / 292 / 37
Регистрация: 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
13735 / 10931 / 6483
Регистрация: 18.12.2011
Сообщений: 29,172
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
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
10.04.2012, 09:41 4
Цитата Сообщение от zss Посмотреть сообщение
А почему бы не сразу с шагом 0.01
потому, что такое представление неточно
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.04.2012, 10:12 5
Nameless One, но ведь в печати

C++
1
std::cout<<i/100<<' '<<j/100<<' '<<k/100<<std::endl;
тоже родятся неточные числа. Какая разница, сразу их рожать, или в момент печати?
0
347 / 292 / 37
Регистрация: 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
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.04.2012, 15:50 7
Я всё к тому, что логичнее вместо i/100 печатать что-то типа cout << "0." << i. Т.е. плавающее число именно рисовать (с учётом эффектов типа нужного дополнительного нуля и т.п.)

Добавлено через 57 секунд
Кстати, "i/100" работать не будет - это же цеслочисленное деление
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
10.04.2012, 15:56 8
Цитата Сообщение от Evg Посмотреть сообщение
Кстати, "i/100" работать не будет - это же цеслочисленное деление
там вообще i, j, k были float
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.04.2012, 16:13 9
Цитата Сообщение от Nameless One Посмотреть сообщение
там вообще i, j, k были float
Угу. Что-то у меня потемнение в глазах было Специально посмотрел, но почему-то увидел "int"
0
10.04.2012, 16:18 10

Не по теме:

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

0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12837 / 7573 / 1765
Регистрация: 25.07.2009
Сообщений: 13,970
10.04.2012, 16:23 11
Цитата Сообщение от Evg Посмотреть сообщение
логичнее вместо i/100 печатать что-то типа cout << "0." << i. Т.е. плавающее число именно рисовать (с учётом эффектов типа нужного дополнительного нуля и т.п.)
Я бы тоже так делал. По сути задача ни чем не отличается от перебора трёх целочисленных слагаемых, дающих в сумме 100, просто тумана напустили немного.
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.04.2012, 16:50 12
Цитата Сообщение от talis Посмотреть сообщение
Кстати вот вопрос: по-хорошему операция деления менее эффективна, чем операция умножения на число с плавающей точкой (или это относится только к целочисленному делению?). Не лучше ли записать i * 0.01?
Вопрос философский. 0.01 нельзя представить точно, в то время как 100.0 - можно. Хотя если не волнуют цифры в 7-8 знаке (или сколько там) после запятой, то умножение быстрее деления в разы
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.04.2012, 16:50
Помогаю со студенческими работами здесь

Выручайте. Перебор трех чисел двумя нажатиями! похоже на банальную рекурсию
Вроде бы глупая рекурсия, но все не так просто как мне казалась. Идея заключается в следующем нажатием 4(перебор влево) 6(перебор...

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

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

Перебор возможных комбинаций
Всем доброго времени. Имеется набор символов &quot;123456789&quot;. Нужно получить все возможные комбинации в пределах, допустим, трех символов...

Перебор возможных комбинаций
Уважаемые участники форума, был бы очень благодарен, если бы вы подсказали, как решить следующую задачу. Есть формула, к примеру: W...


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

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

Новые блоги и статьи
Java Micronaut в Docker: контейнеризация с Maven и Jib
Javaican 16.03.2025
Когда речь заходит о микросервисной архитектуре на Java, фреймворк Micronaut выделяется среди конкурентов. Он создан с учётом особенностей облачных сред и контейнеров, что делает его идеальным. . .
Управление зависимостями в Java: Сравнение Spring, Guice и Dagger 2
Javaican 16.03.2025
Инъекция зависимостей (Dependency Injection, DI) — один из фундаментальных паттернов проектирования, который радикально меняет подход к созданию гибких и тестируемых Java-приложений. Суть этого. . .
Apache Airflow для оркестрации и автоматизации рабочих процессов
Mr. Docker 16.03.2025
Управление сложными рабочими процессами — одна из главных головных болей инженеров данных и DevOps-специалистов. Представьте себе: каждый день нужно запускать десятки скриптов в определенной. . .
Оптимизация приложений Java для ARM
Javaican 16.03.2025
ARM-архитектура переживает настоящий бум популярности в технологическом мире. Когда-то воспринимаемая исключительно как решение для мобильных устройств и встраиваемых систем, сегодня она штурмует. . .
Управление состоянием в Vue 3 с Pinia и Composition API
Reangularity 16.03.2025
Когда я начал работать с Vue несколько лет назад, мне казалось достаточным использовать простую передачу данных через props и события между компонентами. Однако уже на среднем по сложности проекте. . .
Введение в DevSecOps: основные принципы и инструменты
Mr. Docker 16.03.2025
DevSecOps - это подход к разработке программного обеспечения, который объединяет в себе принципы разработки (Dev), безопасности (Sec) и эксплуатации (Ops). Суть подхода заключается в том, чтобы. . .
GitHub Actions vs Jenkins: Сравнение инструментов CI/CD
Mr. Docker 16.03.2025
В этой битве за эффективность и скорость выпуска программных продуктов ключевую роль играют специализированные инструменты. Два гиганта в этой области — GitHub Actions и Jenkins — предлагают разные. . .
Реактивное программировани­е с Kafka Stream и Spring WebFlux
Javaican 16.03.2025
Реактивное программирование – это программная парадигма, ориентированная на потоки данных и распространение изменений. Она позволяет выражать статические или динамические потоки данных и. . .
Простая нейросеть на КуМир: Учебное пособие по созданию и обучению нейронных сетей
EggHead 16.03.2025
Искусственные нейронные сети — удивительная технология, позволяющая компьютерам имитировать работу человеческого мозга. Если вы хотя бы немного интересуетесь современными технологиями, то наверняка. . .
Исполнитель Кузнечик в КуМир: Решение задач
EggHead 16.03.2025
Среди множества исполнителей в системе КуМир особое место занимает Кузнечик — простой, но невероятно полезный виртуальный персонаж, который перемещается по числовой прямой, выполняя ваши команды. На. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru