Как найти сколько прямоугольников в прямоугольнике

Сколько прямоугольников в прямоугольнике.

Сколько прямоугольников в прямоугольнике?

Вы зашли на страницу вопроса Сколько прямоугольников в прямоугольнике?, который относится к
категории Математика. По уровню сложности вопрос соответствует учебной
программе для учащихся 10 – 11 классов. В этой же категории вы найдете ответ
и на другие, похожие вопросы по теме, найти который можно с помощью
автоматической системы «умный поиск». Интересную информацию можно найти в
комментариях-ответах пользователей, с которыми есть обратная связь для
обсуждения темы. Если предложенные варианты ответов не удовлетворяют,
создайте свой вариант запроса в верхней строке.

Improve Article

Save Article

Like Article

  • Read
  • Discuss
  • Improve Article

    Save Article

    Like Article

    Given four integers L, B, l, and b, where L and B denote the dimensions of a bigger rectangle and l and b denotes the dimension of a smaller rectangle, the task is to count the number of smaller rectangles that can be drawn inside a bigger rectangle. 
    Note: Smaller rectangles can overlap partially.

    Examples:

    Input: L = 5, B = 3, l = 4, b = 1
    Output: 6
    Explanation:
    There are 6 rectangles of dimension 4 × 1 that can be drawn inside a bigger rectangle of dimension 5 × 3.

    Input: L = 3, B = 2, l = 2, b = 1
    Output: 3
    Explanation:
    There are 3 rectangles of dimension 3 × 2 can be drawn inside a bigger rectangle of dimension 2 × 1.

    Naive Approach: The idea is to iterate over the length L and breadth B of the bigger rectangle to count the number of smaller rectangles of dimension l x b that can be drawn within the range of bigger rectangle. Print the total count after the traversal. 
    Time Complexity: O(L * B)
    Auxiliary Space: O(1)

    Efficient Approach: The above problem can be solved using Permutation and Combinations. Below are the steps:

    1. The total possible values of the length of smaller rectangle l using the length L is given by (L – l + 1).
    2. The total possible values of the breadth of smaller rectangle b using the length B is given by (B – b + 1).
    3. Hence, the total number of possible rectangles can be formed is given by:

    (L – l + 1) * (B – b + 1)

    Below is the implementation of the above approach:

    C++

    #include <bits/stdc++.h>

    using namespace std;

    int No_of_rectangles(int L, int B,

                        int l, int b)

    {

        if ((l > L) || (b > B)) {

            return -1;

        }

        else {

            return (L - l + 1) * (B - b + 1);

        }

    }

    int main()

    {

        int L = 5, B = 3;

        int l = 4, b = 1;

        cout << No_of_rectangles(L, B, l, b);

        return 0;

    }

    Java

    import java.util.*;

    class GFG{

    static int No_of_rectangles(int L, int B,

                                int l, int b)

    {

        if ((l > L) || (b > B))

        {

            return -1;

        }

        else

        {

            return (L - l + 1) * (B - b + 1);

        }

    }

    public static void main(String[] args)

    {

        int L = 5, B = 3;

        int l = 4, b = 1;

        System.out.println(No_of_rectangles(L, B, l, b));

    }

    }

    Python3

    def No_of_rectangles( L, B, l, b):

        if (l > L) or (b > B):

            return -1;

        else:

            return (L - l + 1) * (B - b + 1);

    if __name__ == '__main__':

        L = 5

        B = 3

        l = 4

        b = 1

        print(No_of_rectangles(L, B, l, b))

    C#

    using System;

    class GFG{

    static int No_of_rectangles(int L, int B,

                                int l, int b)

    {

        if ((l > L) || (b > B))

        {

            return -1;

        }

        else

        {

            return (L - l + 1) * (B - b + 1);

        }

    }

    public static void Main(String[] args)

    {

        int L = 5, B = 3;

        int l = 4, b = 1;

        Console.Write(No_of_rectangles(L, B, l, b));

    }

    }

    Javascript

    <script>

    function No_of_rectangles(L, B,

                                l, b)

    {

        if ((l > L) || (b > B))

        {

            return -1;

        }

        else

        {

            return (L - l + 1) * (B - b + 1);

        }

    }

        let L = 5, B = 3;

        let l = 4, b = 1;

        document.write(No_of_rectangles(L, B, l, b));

    </script>

    Time Complexity: O(1)
    Auxiliary Space: O(1)

    Last Updated :
    20 Apr, 2021

    Like Article

    Save Article

    Дана фигура (A) размером M на N.
    Дана вторая фигура (B), поменьше, размером K на L.

    Нужно определить, сколько максимально фигур B поместятся в фигуре A. Они должны располагаться одна рядом с другой, часть фигур может располагаться вертикально, другая часть горизонтально, что бы занять максимальное возможное пространство в основной фигуре.

    Кто то может подсказать что то по этому вопросу?


    На данный момент у меня мысли только если:

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

    Далее справа, возможно, останется пространство. Проверяем, помещается ли туда прямоугольник вертикально, если да, то заполняем стобец вертикальными прямоугольниками.

    В итоге получаем число — сколько поместилось прямоугольников.

    Далее повторяем тоже самое, только располагаем изначально прямоугольники вертикально, и если снизу остается пространство, проверяем, помещаются ли туда прямоугольники горизонтально, если да, то заполняем линию. И опять считаем сколько поместилось.

    Из двух подсчетом выбираем тот, который дал наибольшый результат.

    Вот пример подсчета, который я описал, реализованный на на JavaScript:

    function calcFigures(FigureA, FigureB) {
        var total1 = 0,
            total2 = 0;
    
        (function() {
            var figures_per_row = Math.floor(FigureA.width / FigureB.width),
                figures_per_col = Math.floor(FigureA.height / FigureB.height),
                invers_figures_per_row = 0,
                invers_figures_per_col = 0;
    
            if (FigureA.width - (figures_per_row * FigureB.width) >= FigureB.height) {
                invers_figures_per_row = Math.floor((FigureA.width - (figures_per_row * FigureB.width)) / FigureB.height);
                invers_figures_per_col = Math.floor(FigureA.height / FigureB.width);
            }
    
            total1 = (figures_per_row * figures_per_col) + (invers_figures_per_row * invers_figures_per_col);
        }());
    
        (function() {
            var figures_per_row = Math.floor(FigureA.width / FigureB.height),
                figures_per_col = Math.floor(FigureA.height / FigureB.width),
                invers_figures_per_row = 0,
                invers_figures_per_col = 0;
    
            if (FigureA.width - (figures_per_row * FigureB.height) >= FigureB.width) {
                invers_figures_per_row = Math.floor((FigureA.width - (figures_per_row * FigureB.height)) / FigureB.width);
                invers_figures_per_col = Math.floor(FigureA.height / FigureB.height);
            }
    
            total2 = (figures_per_row * figures_per_col) + (invers_figures_per_row * invers_figures_per_col);
        }());
    
        return Math.max(total1, total2);
    }
    


    Автор:

    Laura McKinney


    Дата создания:

    9 Апрель 2021


    Дата обновления:

    12 Май 2023


    СКОЛЬКО ПРЯМОУГОЛЬНИКОВ В КВАДРАТЕ?  //Математика

    Видео: СКОЛЬКО ПРЯМОУГОЛЬНИКОВ В КВАДРАТЕ? //Математика

    Сетка 5х5 состоит из 25 отдельных квадратов, которые можно комбинировать для формирования прямоугольников. Подсчет их – это простой вопрос принятия регулярного подхода, который приводит к несколько неожиданному результату.

      Начните с квадрата в верхнем левом углу. Подсчитайте количество прямоугольников, которые можно создать, начиная с этого квадрата. Есть пять разных прямоугольников высотой 1, пять разных прямоугольников высотой 2, что приводит к 5 х 5, или 25 разных прямоугольников, начинающихся с этого квадрата.

      Переместите один квадрат вправо и посчитайте прямоугольники, начинающиеся здесь. Здесь есть четыре разных прямоугольника с высотой 1, еще четыре с высотой 2, ведущих к 5 x 4, или 20 разных прямоугольников, начинающихся здесь.

      Повторите это для следующего квадрата, и вы увидите, что есть 5 х 3 прямоугольника или 15. Вы должны увидеть шаблон уже сейчас. Для любого квадрата количество нарисованных прямоугольников равно их координатному расстоянию от нижнего правого угла.

      Заполните сетку количеством прямоугольников каждого квадрата, подсчитав их вручную или выполнив трюк из шага 3. Когда вы закончите, он должен выглядеть примерно так:

      25 20 15 10 5 20 16 12 8 4 15 12 9 6 3 10 8 6 4 2 5 4 3 2 1

      Сложите числа в сетке, чтобы получить общее количество прямоугольников. Ответ 225, что 5 кубов. Любая сетка размером NxN будет иметь N прямоугольных кубов. См. Ссылки для математического доказательства, если вы не возражаете против небольшой алгебры.

    Сообщения без ответов | Активные темы | Избранное

     

    Формула для числа прямоугольников (олимпиада Приморского кр)

    Сообщение23.03.2011, 23:00 


    23/03/11

    7
    оттуда, откуда мы все 🙂

    Выразите через натуральное число n количество прямоугольников на координатной плоскости со сторонами, параллельными осям и целочисленными вершинами (a, b) $0le a, ble n$

    Профиль  

    ИСН 

    Сообщение23.03.2011, 23:04 

    Заслуженный участник
    Аватара пользователя


    18/05/06
    13415
    с Территории

    Большинство людей, когда надо узнать число дней с 26-го, например, по 31-е число месяца, считает путём загибания пальцев. Это из той же оперы?

    Профиль  

    svv 

    Re: Формула для числа прямоугольников (олимпиада Приморского кр)

    Сообщение23.03.2011, 23:14 

    Заслуженный участник


    23/07/08
    10060
    Crna Gora

    ИСН писал(а):

    Это из той же оперы?

    Нет, это из олимпиады Приморского края.

    Профиль  

    Sonkina 

    Re:

    Сообщение23.03.2011, 23:14 


    23/03/11

    7
    оттуда, откуда мы все 🙂

    Большинство людей, когда надо узнать число дней с 26-го, например, по 31-е число месяца, считает путём загибания пальцев. Это из той же оперы?

    Ну а если $n=100$ тоже на пальцах будете? Пальцев не хватит :lol1:

    Профиль  

    ИСН 

    Сообщение23.03.2011, 23:17 

    Заслуженный участник
    Аватара пользователя


    18/05/06
    13415
    с Территории

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

    Профиль  

    Sonkina 

    Re:

    Сообщение23.03.2011, 23:18 


    23/03/11

    7
    оттуда, откуда мы все 🙂

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

    Вы точно эту задачу решаете, а не какую другую?

    Профиль  

    svv 

    Re: Формула для числа прямоугольников (олимпиада Приморского кр)

    Сообщение23.03.2011, 23:27 

    Заслуженный участник


    23/07/08
    10060
    Crna Gora

    Sonkina

    , мне тоже совершенно непонятно, в чем фишка. Вы можете ещё как-то по другому объяснить условие?
    А то у меня получается совершенно недоброе представление об олимпиаде Приморского края.

    Профиль  

    Null 

    Сообщение23.03.2011, 23:30 

    Заслуженный участник


    12/08/10
    1410

    $left(frac{n(n+1)}{2}right)^2$?

    Профиль  

    Sonkina 

    Re: Формула для числа прямоугольников (олимпиада Приморского кр)

    Сообщение23.03.2011, 23:32 


    23/03/11

    7
    оттуда, откуда мы все 🙂

    Sonkina

    , мне тоже совершенно непонятно, в чем фишка. Вы можете ещё как-то по другому объяснить условие?

    Попробую. На декартовой плоскости дано множество всех целочисленных точек, каждая из координат которых не меньше нуля и не больше n. Сколькими способыми можно выбрать прямоугольник, чтобы его вершины лежали в этом множестве, а стороны были параллельны осям координат? Так понятней? А Вы о чем подумали сначала?

    Профиль  

    svv 

    Re: Формула для числа прямоугольников (олимпиада Приморского кр)

    Сообщение23.03.2011, 23:35 

    Заслуженный участник


    23/07/08
    10060
    Crna Gora

    Я всё понял. Надо найти количество всевозможных подпрямоугольников, помещающихся в большой прямоугольник. Их там туча. Отличающиеся только сдвигом считаются всё равно разными. Так?

    Подумал примерно то же, что и Null

    .

    Профиль  

    Sonkina 

    Re:

    Сообщение23.03.2011, 23:41 


    23/03/11

    7
    оттуда, откуда мы все 🙂

    $left(frac{n(n+1)}{2}right)^2$?

    А вопросительный знак – это что? Я знаю что восклицательный это факториал, а вопросительный?

    — Ср мар 23, 2011 23:42:34 —

    Я всё понял. Надо найти количество всевозможных подпрямоугольников, помещающихся в большой прямоугольник. Их там туча. Отличающиеся только сдвигом считаются всё равно разными. Так?

    Подумал примерно то же, что и Null

    .

    Только не просто большой прямоугольник, а именно большой квадрат.

    Профиль  

    age 

    Сообщение23.03.2011, 23:52 

    Заблокирован
    Аватара пользователя


    17/06/09

    2213

    $left(frac{n(n+1)}{2}right)^2$?

    Немножко не так. Для каждой пары $(a_0,b_0)$ – координат первой точки подойдут любые пары $(a_1,b_1)$ координат для второй точки. Кроме $(a_0,b_0)$, т.к. в данном случае прямоугольник будет вырожденный. Также будут вырождаться в отрезок все прямоугольники у которых будет совпадать хоть одна координата. Поэтому их всех надо исключить. Комбинаторная задача. Надо посчитать.

    Профиль  

    kocuHyc 

    Re:

    Сообщение24.03.2011, 00:00 


    03/03/11

    16

    $left(frac{n(n+1)}{2}right)^2$?

    Немножко не так. Для каждой пары $(a_0,b_0)$ – координат первой точки подойдут любые пары $(a_1,b_1)$ координат для второй точки. Кроме $(a_0,b_0)$, т.к. в данном случае прямоугольник будет вырожденный. Также будут вырождаться в отрезок все прямоугольники у которых будет совпадать хоть одна координата. Поэтому их всех надо исключить. Комбинаторная задача. Надо посчитать.

    http://e-science.ru/forum/index.php?showtopic=29108

    Профиль  

    Xenia1996 

    Re:

    Сообщение24.03.2011, 01:04 


    01/10/10

    2116
    Израиль (племянница БизиБивера)

    $left(frac{n(n+1)}{2}right)^2$?

    Выведенная Вами формула является частным случаем более общей закономерности, согласно которой число прямоугольников (с целочисленными вершинами и соронами, параллельными осям координат) внутри (не обязательно строго внутри) большого прямоугольника n на m равна произведению энного и эмного треугольных чисел.
    $frac{n(n+1)}2 cdot frac{m(m+1)}2$

    Частный случай $n=2; m=3$ подробно рассмотрен в этом детском саду, а задачу, я полагаю, ТС взяла отсюда (год 1990, задача 1).

    Профиль  

    Модераторы: Модераторы Математики, Супермодераторы

    Кто сейчас на конференции

    Сейчас этот форум просматривают: нет зарегистрированных пользователей

    Вы не можете начинать темы
    Вы не можете отвечать на сообщения
    Вы не можете редактировать свои сообщения
    Вы не можете удалять свои сообщения
    Вы не можете добавлять вложения

    Добавить комментарий