Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
18 / 18 / 7
Регистрация: 07.11.2010
Сообщений: 136

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

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

Студворк — интернет-сервис помощи студентам
Доброго времени суток.
Нужно перебрать все возможные значения трёх чисел. их сума равна 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
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
13773 / 10966 / 6491
Регистрация: 18.12.2011
Сообщений: 29,244
10.04.2012, 08:43
А почему бы не сразу с шагом 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
Цитата Сообщение от zss Посмотреть сообщение
А почему бы не сразу с шагом 0.01
потому, что такое представление неточно
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
10.04.2012, 10:12
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
Цитата Сообщение от 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
Я всё к тому, что логичнее вместо i/100 печатать что-то типа cout << "0." << i. Т.е. плавающее число именно рисовать (с учётом эффектов типа нужного дополнительного нуля и т.п.)

Добавлено через 57 секунд
Кстати, "i/100" работать не будет - это же цеслочисленное деление
0
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
10.04.2012, 15:56
Цитата Сообщение от 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
Цитата Сообщение от Nameless One Посмотреть сообщение
там вообще i, j, k были float
Угу. Что-то у меня потемнение в глазах было Специально посмотрел, но почему-то увидел "int"
0
10.04.2012, 16:18

Не по теме:

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

0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
10.04.2012, 16:23
Цитата Сообщение от 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
Цитата Сообщение от 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
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11680&amp;d=1772460536 Одним из. . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru