Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/48: Рейтинг темы: голосов - 48, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 22

Можно ли на прямоугольном участке застройки размером a на b метров разместить два дома

13.11.2012, 20:53. Показов 9964. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача: Можно ли на прямоугольном участке застройки размером a на b метров разместить два дома размером p на q и r на s метров? Дома можно располагать только параллельно сторонам участка.

Помогите сделать, а то я как не пытался все равно фигня какая то получается.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.11.2012, 20:53
Ответы с готовыми решениями:

Можно ли на прямоугольном участке застройки размером a b разместить два дома размерами p q и r s метров?
Можно ли на прямоугольном участке застройки размером a b разместить два дома размерами p q и r s метров? Дома можно располагать только...

Можно ли на прямоугольном участке застройки размером a b метров разместить два дома
Реализуйте приложение, отвечающее на вопрос задачи. - Можно ли на прямоугольном участке застройки размером a b метров разместить два ...

Можно ли на прямоугольном участке застройки размером a b разместить два дома размерами p q и r s метров?
Можно ли на прямоугольном участке застройки размером a b разместить два дома размерами p q и r s метров? Дома можно располагать только...

10
2 / 2 / 0
Регистрация: 04.03.2013
Сообщений: 26
24.03.2013, 16:04
Цитата Сообщение от koshak72 Посмотреть сообщение
Задача: Можно ли на прямоугольном участке застройки размером a на b метров разместить два дома размером p на q и r на s метров? Дома можно располагать только параллельно сторонам участка.

Помогите сделать, а то я как не пытался все равно фигня какая то получается.
Решение нашел?

Добавлено через 1 час 25 минут
Цитата Сообщение от Danya_sky Посмотреть сообщение
Решение нашел?
Сделал но на java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    
        int a = 5, b = 10, p = 2, q = 3, r = 1, s = 8;
        if ((a >= (p + r)) && (b >= q && b >= s))
        {
            System.out.println("Можно построить 2 дома");
        }
        else if ((a >= (p + s))&& (b >= q && b >= r))
        {
            System.out.println("Можно построить 2 дома");
        }
        else if ((a >= (q + r))&& (b >= p && b >= s))
        {
            System.out.println("Можно построить 2 дома");
        }
        else if ((a >= (q + s))&& (b >= p && b >= r))
        {
            System.out.println("Можно построить 2 дома");
        }
        else
            System.out.println("Нельзя построить 2 дома");
    }
}
0
6 / 6 / 3
Регистрация: 25.03.2013
Сообщений: 56
25.03.2013, 12:30
Цитата Сообщение от Danya_sky Посмотреть сообщение
Решение нашел?

Добавлено через 1 час 25 минут

Сделал но на java
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    
        int a = 5, b = 10, p = 2, q = 3, r = 1, s = 8;
        if ((a >= (p + r)) && (b >= q && b >= s))
        {
            System.out.println("Можно построить 2 дома");
        }
        else if ((a >= (p + s))&& (b >= q && b >= r))
        {
            System.out.println("Можно построить 2 дома");
        }
        else if ((a >= (q + r))&& (b >= p && b >= s))
        {
            System.out.println("Можно построить 2 дома");
        }
        else if ((a >= (q + s))&& (b >= p && b >= r))
        {
            System.out.println("Можно построить 2 дома");
        }
        else
            System.out.println("Нельзя построить 2 дома");
    }
}
Не совсем.если вы поменяете местами стороны прямоугольников,т.е.(int a = 10, b = 5, p = 3, q = 2, r = 8, s = 1,то ответ будет отрицательный.Хотя,сами понимаете,ничего особо не поменялось в участке и в размерах домов.Вам необходимо данное решение проверять исходя из того,какая сторона у (участка,дома) длина(т.е. большая) и ширина(т.е. меньшая).Код Ваш увеличится как минимум раза в 2.У меня вот так вот получилось:
Java
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public class parcel {
 
    public static void main(String[] args) {
        int a = 10,b = 5;
        int c = 3,d = 2;
        int e = 8,f = 1;
        if (a >= b){
            if(c >= d && e >= f){
                if(c <= a && e <= a && (d + f) <= b)
                    System.out.println("Можно построить 2 дома");
                else
                    System.out.println("Нельзя построить 2 дома");
            }
            else if(c < d && e >= f){
                if(d <= a && e <= a && (c + f) <= b)
                    System.out.println("Можно построить 2 дома");
                else
                    System.out.println("Нельзя построить 2 дома");   
                }
            else if(c < d && e < f){
                if(d <= a && f <= a && (c + e) <= b)
                    System.out.println("Можно построить 2 дома");
                else
                    System.out.println("Нельзя построить 2 дома");   
                }
            else if(c >= d && e < f){
                if(c <= a && f <= a && (d + e) <= b)
                    System.out.println("Можно построить 2 дома");
                else
                    System.out.println("Нельзя построить 2 дома");   
                }
            }
        else if (a < b){
            if(c >= d && e >= f){
                if(c <= b && e <= b && (d + f) <= a)
                    System.out.println("Можно построить 2 дома");
                else
                    System.out.println("Нельзя построить 2 дома");
            }
            else if(c < d && e >= f){
                if(d <= b && e <= b && (c + f) <= a)
                    System.out.println("Можно построить 2 дома");
                else
                    System.out.println("Нельзя построить 2 дома");   
                }
            else if(c < d && e < f){
                if(d <= b && f <= b && (c + e) <= a)
                    System.out.println("Можно построить 2 дома");
                else
                    System.out.println("Нельзя построить 2 дома");   
                }
            else if(c >= d && e < f){
                if(c <= b && f <= b && (d + e) <= a)
                    System.out.println("Можно построить 2 дома");
                else
                    System.out.println("Нельзя построить 2 дома");   
                }
            }
        }
    }
0
2 / 2 / 0
Регистрация: 04.03.2013
Сообщений: 26
25.03.2013, 12:44
полный код у меня такой
Java
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
public class Home {
    public static void main(String[] args) {
 
        int a = 5, b = 6, p = 1, q = 6, r = 1, s = 1;
        
        if ((a >= (p + r)) && (b >= q && b >= s)) {
            System.out.println("1 Можно построить 2 дома");
        } else if ((a >= (p + s)) && (b >= q && b >= r)) {
            System.out.println("2 Можно построить 2 дома");
        } else if ((a >= (q + r)) && (b >= p && b >= s)) {
            System.out.println("3 Можно построить 2 дома");
        } else if ((a >= (q + s)) && (b >= p && b >= r)) {
            System.out.println("4 Можно построить 2 дома");
        } else if ((b >= (p + r)) && (a >= q && a >= s)) {
            System.out.println("5 Можно построить 2 дома");
        } else if ((b >= (p + s)) && (a >= q && a >= r)) {
            System.out.println("6 Можно построить 2 дома");
        } else if ((b >= (q + r)) && (a >= p && a >= s)) {
            System.out.println("7 Можно построить 2 дома");
        } else if ((b >= (q + s)) && (a >= p && a >= r)) {
            System.out.println("8 Можно построить 2 дома");
        } 
        else
            System.out.println("Нельзя построить 2 дома");
    }
}
0
6 / 6 / 3
Регистрация: 25.03.2013
Сообщений: 56
25.03.2013, 12:52
Цитата Сообщение от Danya_sky Посмотреть сообщение
полный код у меня такой
Java
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
public class Home {
    public static void main(String[] args) {
 
        int a = 5, b = 6, p = 1, q = 6, r = 1, s = 1;
        
        if ((a >= (p + r)) && (b >= q && b >= s)) {
            System.out.println("1 Можно построить 2 дома");
        } else if ((a >= (p + s)) && (b >= q && b >= r)) {
            System.out.println("2 Можно построить 2 дома");
        } else if ((a >= (q + r)) && (b >= p && b >= s)) {
            System.out.println("3 Можно построить 2 дома");
        } else if ((a >= (q + s)) && (b >= p && b >= r)) {
            System.out.println("4 Можно построить 2 дома");
        } else if ((b >= (p + r)) && (a >= q && a >= s)) {
            System.out.println("5 Можно построить 2 дома");
        } else if ((b >= (p + s)) && (a >= q && a >= r)) {
            System.out.println("6 Можно построить 2 дома");
        } else if ((b >= (q + r)) && (a >= p && a >= s)) {
            System.out.println("7 Можно построить 2 дома");
        } else if ((b >= (q + s)) && (a >= p && a >= r)) {
            System.out.println("8 Можно построить 2 дома");
        } 
        else
            System.out.println("Нельзя построить 2 дома");
    }
}
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
25.03.2013, 16:43
Цитата Сообщение от Danya_sky Посмотреть сообщение
Сделал но на java
«Вот же круто! А зачем?» © http://www.youtube.com/watch?v=6e0HcvFt_Ng

Danya_sky, barkass, Java в PHP разделе?
0
2 / 2 / 0
Регистрация: 04.03.2013
Сообщений: 26
25.03.2013, 16:53
Цитата Сообщение от Vovan-VE Посмотреть сообщение
«Вот же круто! А зачем?» © http://www.youtube.com/watch?v=6e0HcvFt_Ng

Danya_sky, barkass, Java в PHP разделе?
Хотелось показать, алгоритм по которому делается. было реализовано на одном. а переделать под другой язык, думаю не составит труда.
Поэтому изначально указал что не php. Прощу прощенья если не по теме получилось.
0
 Аватар для shafl
258 / 147 / 37
Регистрация: 24.01.2011
Сообщений: 427
28.03.2013, 08:43
алгоритм можно немного запутать, чтоб не выглядело как полный пербор
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
function packPr($a, $b, $p, $q, $r, $s){
    $fValue = min($p, $q) + min($r, $s);
    $sValue = max(max($p, $q), max($r, $s));
    if(($a >= $fValue and $b >= $sValue) or ($b >= $fValue and $a >= $sValue)){
        echo 'Можно построить 2 дома </br>';
        }
    else{
        echo 'Нельзя построить 2 дома </br>';
        }
    }
for($i = 0; $i < 50; $i++){
                packPr(rand(1, 25), rand(1, 25), rand(1, 25), rand(1, 25), rand(1, 25), rand(1, 25));
            }
0
Комбинатор
 Аватар для DenQ
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
28.03.2013, 13:11
Когда-то похожую задачу, я решал средствами высшей математики.
Выводил уравнение и все готово, только значения подставляй...
Если бы использовать подобное уравнение в данной задаче, то ее решение было бы намного красивее чем 8 вложенных if
0
 Аватар для shafl
258 / 147 / 37
Регистрация: 24.01.2011
Сообщений: 427
29.03.2013, 07:50
Цитата Сообщение от DenQ Посмотреть сообщение
Когда-то похожую задачу, я решал средствами высшей математики.
Выводил уравнение и все готово, только значения подставляй...
Если бы использовать подобное уравнение в данной задаче, то ее решение было бы намного красивее чем 8 вложенных if
Врядли у вас получится, эта задача вариация задачи об упаковке (двухмерной), для неё есть стратегии приближения, но в данном случае они не применимы. Если у вас получится, возможно по вашему алгоритму будут дети в школах учиться
0
Комбинатор
 Аватар для DenQ
980 / 252 / 13
Регистрация: 10.03.2010
Сообщений: 3,556
29.03.2013, 16:55
shafl, дети не будут в школе учиться по этом алгоритму, он подразумевает производные.
И, наверное вы правы, немного перепутал задачи, с утра.
Задача о которой я хотел сказать звучит приблизительно следующим образом:
Есть лист стекла, нужно сделать из него аквариум. с наибольшим объемом. Как нужно порезать лист стекла, что б добиться такого результата... Задача не сложная, на самом деле... Решал лет 5 назад
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
29.03.2013, 16:55
Помогаю со студенческими работами здесь

Можно ли на прямоугольном участке застройки размером a*b разместить два дома размерами p*q и r*s метров?
не получается написать код ибо только учусь помогите мне пожалуйста

Определить, можно ли из прямоугольного листа размером a*b метров вырезать две прямоугольные заготовки
Ребят,потомогите пожалуйста две программы написать. одна из задач на формы. Можно ли из прямоугольноголиста размером a*b метров...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru