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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 19, средняя оценка - 4.63
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
#1

Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. - C++

21.10.2009, 17:50. Просмотров 2317. Ответов 18
Метки нет (Все метки)

Из прямоугольного листа бумаги со сторонами a и b надо свернуть коробочку с максимальной площадью, какая будет длина стороны.

Помогите решить задачу по C++
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2009, 17:50     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом.
Посмотрите здесь:

С++. Дан рюкзак с заданным объемом... C++
свернуть программу C++
Треугольник со сторонами abc C++
C++ из листа клетчатой бумаги N*N клеток вырезали М клеток . на сколько кусков распадается оставшаяся часть листа?
Структуры. Определить название месяца с максимальным объемом выпуска C++
C++ Выяснить, можно ли прямоугольник со сторонами a, b уместить внутри прямоугольника со сторонами c, d
Пролезет ли кирпич со сторонами a, b и c через прямоугольное отверстие со сторонами r и s C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Grass-snake
50 / 50 / 2
Регистрация: 03.02.2009
Сообщений: 129
21.10.2009, 18:25     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #2
а ты ничего не путаешь? с максимальной площадью или с максимальным объемом?
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
21.10.2009, 18:37  [ТС]     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #3
Цитата Сообщение от Grass-snake Посмотреть сообщение
а ты ничего не путаешь? с максимальной площадью или с максимальным объемом?
извеняюсь, действительно, ошибся, с максимальным объёмом.
LLLob
22 / 22 / 5
Регистрация: 21.10.2009
Сообщений: 38
21.10.2009, 18:54     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #4
Здесь, по моему мнению, задача сводится к следующему: ты наверное знаешь как выглядит развертка параллелипипеда на бумаге, так вот максимальный объем этой фигуры будет тогда когда площади оснований будут максимальны. Логика вот в чем: ты можешь теоретически сделать боковые стороны меньше миллиметра, поэтому ими можно пренебречь; тогда у тебя останутся только два основания (верхнее и нижнее) и длина одной стороны = (длина листа/2) или по твоему условию a/2
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
21.10.2009, 19:12  [ТС]     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #5
всёравно не понимаю, как можно решить...
LLLob
22 / 22 / 5
Регистрация: 21.10.2009
Сообщений: 38
21.10.2009, 19:34     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #6
Вот стандартная развертка параллелипипеда:

Теперь смотри: размер боковых сторон можно теоретически изменять вплоть даже меньше миллиметра, значит, в этой задаче размерами боковых сторон можно пренебречь. Если ты опустишь боковые стороны, то у тебя останутся только основания:

Основания делят лист бумаги ровно наполовину: значит искомая длина сторон основания: a/2 (длина),
b/2 (ширина). Если тебе нужен код реализации на С++ напиши в эту тему, я тебе помогу
Миниатюры
Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом.   Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом.  
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.10.2009, 20:06     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #7
LLOb, а в вашем варианте объем не будет минимальным? надо вроде максимальный
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
21.10.2009, 20:09  [ТС]     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #8
не могу составить саму програму, хоть убейте, не выходит...
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.10.2009, 20:13     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #9
имхо, если сворачивать кубик по стандартной схеме, когда заготовка в виде креста получается и состоит из 6ти квадратных сегментов, то длина ребра такого куба будет max(a,b)/4.
Однако, по такой схеме может свернуться и параллелипипед, и не факт что такая свёрка даёт максимальный объём.
вопрос к, Apmyp /7, тебе принципиально нужена коробочка ввиде параллелипипеда. может пирамидка и ещё какая объёмная фигура подойдёт?
LLLob
22 / 22 / 5
Регистрация: 21.10.2009
Сообщений: 38
21.10.2009, 20:18     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #10
Нет, TanT, объем здесь будет максимальным. Если мы начнем увеличивать боковые стороны у нас будут оставаться свободные места на листе бумаги, а так в объеме параллелипипеда задействован весь лист. Apmyp /7, вот пример программы на C++(не проверял, сделал на скорую руку):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include<iostream>
#include<windows.h>
using namespace std;
void main()
{
    SetConsoleOutputCP(1251);
    float a,b;
    cout<<"Введите сторону a\n";
             cin>>a;
    cout<<"Введите сторону b\n";
             cin>>b;
             cout<<"Cтороны основания при наибольшем объеме:\n";
             cout<<"Длина = "<<a/2<<endl;
             cout<<"Ширина = "<<b/2<<endl;
             cin.get();
             cin.get();
}
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.10.2009, 20:22     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #11
вот вариант с пирамидой, на оптимальность не думал, рёбра ромба сам посчитаешь, попробуй свернуть так тетрадный лист.
Изображения
 
LLLob
22 / 22 / 5
Регистрация: 21.10.2009
Сообщений: 38
21.10.2009, 20:22     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #12
Если сворачивать кубик - это будет частный случай. Если брать максимальный объем листа, из которого будет производится фигура, то это должен быть параллелипипед.
Apmyp /7
3 / 3 / 0
Регистрация: 14.10.2009
Сообщений: 76
21.10.2009, 20:22  [ТС]     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #13
Цитата Сообщение от TanT Посмотреть сообщение
имхо, если сворачивать кубик по стандартной схеме, когда заготовка в виде креста получается и состоит из 6ти квадратных сегментов, то длина ребра такого куба будет max(a,b)/4.
Однако, по такой схеме может свернуться и параллелипипед, и не факт что такая свёрка даёт максимальный объём.
вопрос к, Apmyp /7, тебе принципиально нужена коробочка ввиде параллелипипеда. может пирамидка и ещё какая объёмная фигура подойдёт?
да в виде параллелипипеда
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.10.2009, 20:37     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #14
LLLOb, вы попробуйте свернуть такую коробочку. возьмите лист бумаги и попробуйте. а ещё какой у вас объём получиться? если V=площадь остноваяния*на высоту боковой строны
Теперь смотри: размер боковых сторон можно теоретически изменять вплоть даже меньше миллиметра, значит, в этой задаче размерами боковых сторон можно пренебречь. Если ты опустишь боковые стороны, то у тебя останутся только основания:
посчитайте объём.
P.S. всю длину сторон листа нельзя задействовать под рёбра короба. надо выбрать оптимальные длины
у меня получилось уравнение третьей степени, из которого надо посчитать производную и найти экстремумы. математика, билин.
LLLob
22 / 22 / 5
Регистрация: 21.10.2009
Сообщений: 38
21.10.2009, 20:46     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #15
Я согласен, что на практике такую фигуру свернуть нельзя, но если не знаешь размеров боковых
сторон, тогда вычислить максимальный объем нельзя (ведь длина ребер может варъироваться)
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
21.10.2009, 21:00     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #16
Цитата Сообщение от LLLob Посмотреть сообщение
Я согласен, что на практике такую фигуру свернуть нельзя, но если не знаешь размеров боковых
сторон, тогда вычислить максимальный объем нельзя (ведь длина ребер может варъироваться)
можно

производные, экстремумы и вперёд.
уравнение такое получилось (а/2-x)*(b-x)*x=V
(a/2-x) и (b-x) - это основание. x- высота (нужно собственно найти значение при максимальном объёме)

поэкспериментируйте с листом, я свой уже измял весь. любую сторону делите пополам - линия 1. потом от любого края (паралале. линии 1)отмеряет произвольную величину (будет Х) проводите линию 2 (парралельную 1). и от линии 1 ещё одну линию параллел 1 и 2 проводите да так чтобы она лежала по одну сторону от 1 и 2 и отстояла от 1 на величну Х. запутались?
Миниатюры
Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом.  
LLLob
22 / 22 / 5
Регистрация: 21.10.2009
Сообщений: 38
21.10.2009, 21:13     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #17
Но ведь по этим расчетам высоту x можно изменять, вы так и написали, TanT, что отмеряем произвольную величину(будет X); нам же нужен МАКСИМАЛЬНЫЙ ОБЪЕМ, значит нужно чтобы площади оснований как можно больше покрыли лист. Пусть высота - будет 0.001 см, тогда объем параллелипипеда будет приближен к максимальному, я считаю из этой логики нужно исходить при решении данной задачи - произвольно брать величины нельзя
odip
Эксперт С++
 Аватар для odip
7151 / 3291 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
21.10.2009, 21:19     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #18
TanT формулу неправильную написал.
Так же из-за несимметричности развертки формул будет две - одна с AxB и другая с BxA.

Необязательно решать уравнение - можно найти решение с помощью численных методов.
Нужно только производную вычислить - чтобы искать интервалы где корни находятся.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.10.2009, 05:54     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом.
Еще ссылки по теме:

Программно свернуть окно C++
Можно ли прямоугольник со сторонами а,b вместить внутри прямоугольника со сторонами c,d C++
C++ Задан прямоугольник со сторонами а и b
C++ Работа с большим объемом данных
Ошибка инициализации queue<type> q(n), заданым объемом n-элементов C++

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

Или воспользуйтесь поиском по форуму:
TanT
эволюционирую потихоньку
 Аватар для TanT
464 / 462 / 43
Регистрация: 30.06.2009
Сообщений: 1,399
22.10.2009, 05:54     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом. #19
Цитата Сообщение от odip Посмотреть сообщение
TanT формулу неправильную написал.
Так же из-за несимметричности развертки формул будет две - одна с AxB и другая с BxA.

Необязательно решать уравнение - можно найти решение с помощью численных методов.
Нужно только производную вычислить - чтобы искать интервалы где корни находятся.
с формулой мог влёт накосячить, не проверял
про численные я успел утром подумать точнее что можно вообще просто переборм с определённым шагам искать максимальный объём, но так или иначе, совокупность ответов позволяет приступить к кодированию - решение есть
Yandex
Объявления
22.10.2009, 05:54     Из листа бумаги со сторонами a и b свернуть коробочку с максимальным объемом.
Ответ Создать тему
Опции темы

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