Recuento de rectángulos posibles a partir de N y M líneas rectas paralelas a los ejes X e Y respectivamente

Dados dos números enteros N y M , donde N líneas rectas son paralelas al eje X y M líneas rectas son paralelas al eje Y , la tarea es calcular el número de rectángulos que se pueden formar con estas líneas.
Ejemplos: 
 

Entrada: N = 3, M = 6 
Salida: 45 
Explicación: 
Hay un total de 45 rectángulos posibles con 3 líneas paralelas al eje x y 6 líneas paralelas al eje y.
Entrada: N = 2, M = 4 
Salida:
Explicación: 
Hay un total de 6 rectángulos posibles con 2 líneas paralelas al eje x y 4 líneas paralelas al eje y. 
 

Planteamiento: 
Para resolver el problema mencionado anteriormente, debemos observar que un rectángulo está formado por 4 líneas rectas en las que los lados opuestos son paralelos y el ángulo entre dos lados es de 90. Por lo tanto, para cada rectángulo, dos lados deben ser paralelos a El eje X y los otros dos lados deben ser paralelos al eje Y. 
 

  • Número de formas de seleccionar dos líneas paralelas al eje X = N C 2 y Número de formas de seleccionar dos líneas paralelas al eje Y = M C 2 .
  • Así que el número total de rectángulos = N C 2 * M C = [ N * (N – 1) / 2 ] * [ M * (M – 1) / 2 ]

A continuación se muestra la implementación del enfoque anterior: 
 

C++

// C++ Program to count number of
// rectangles formed by N lines
// parallel to X axis M lines
// parallel to Y axis
#include <bits/stdc++.h>
using namespace std;
 
// Function to calculate
// number of rectangles
int count_rectangles(int N, int M)
{
    // Total number of ways to
    // select two lines
    // parallel to X axis
    int p_x = (N * (N - 1)) / 2;
 
    // Total number of ways
    // to select two lines
    // parallel to Y axis
    int p_y = (M * (M - 1)) / 2;
 
    // Total number of rectangles
    return p_x * p_y;
}
 
// Driver Program
int main()
{
 
    int N = 3;
 
    int M = 6;
 
    cout << count_rectangles(N, M);
}

Java

// Java Program to count number of
// rectangles formed by N lines
// parallel to X axis M lines
// parallel to Y axis
class GFG{
 
// Function to calculate
// number of rectangles
static int count_rectangles(int N, int M)
{
    // Total number of ways to
    // select two lines
    // parallel to X axis
    int p_x = (N * (N - 1)) / 2;
 
    // Total number of ways
    // to select two lines
    // parallel to Y axis
    int p_y = (M * (M - 1)) / 2;
 
    // Total number of rectangles
    return p_x * p_y;
}
 
// Driver Program
public static void main(String[] args)
{
    int N = 3;
    int M = 6;
 
    System.out.print(count_rectangles(N, M));
}
}
 
// This code is contributed by sapnasingh4991

Python3

# Python3 program to count number of rectangles
# formed by N lines parallel to X axis
# and M lines parallel to Y axis
def count_rectangles(N, M):
 
    # Total number of ways to select
    # two lines parallel to X axis
    p_x = (N * (N - 1)) // 2
 
    # Total number of ways to select
    # two lines parallel to Y axis
    p_y = (M * (M - 1)) // 2
 
    # Total number of rectangles
    return p_x * p_y
 
# Driver code
N = 3
M = 6
 
print(count_rectangles(N, M))
 
# This code is contributed by himanshu77

C#

// C# Program to count number of
// rectangles formed by N lines
// parallel to X axis M lines
// parallel to Y axis
using System;
class GFG{
 
// Function to calculate
// number of rectangles
static int count_rectangles(int N, int M)
{
    // Total number of ways to
    // select two lines
    // parallel to X axis
    int p_x = (N * (N - 1)) / 2;
 
    // Total number of ways
    // to select two lines
    // parallel to Y axis
    int p_y = (M * (M - 1)) / 2;
 
    // Total number of rectangles
    return p_x * p_y;
}
 
// Driver Program
public static void Main()
{
    int N = 3;
    int M = 6;
 
    Console.Write(count_rectangles(N, M));
}
}
 
// This code is contributed by Code_mech

Javascript

<script>
 
// JavaScript Program to count number of
// rectangles formed by N lines
// parallel to X axis M lines
// parallel to Y axis
 
// Function to calculate
// number of rectangles
function count_rectangles(N, M)
{
    // Total number of ways to
    // select two lines
    // parallel to X axis
    let p_x = (N * (N - 1)) / 2;
   
    // Total number of ways
    // to select two lines
    // parallel to Y axis
    let p_y = (M * (M - 1)) / 2;
   
    // Total number of rectangles
    return p_x * p_y;
}
 
// Driver Code
 
    let N = 3;
    let M = 6;
   
    document.write(count_rectangles(N, M));
         
</script>
Producción: 

45

 

Complejidad de tiempo: O(1) 
 

Publicación traducida automáticamente

Artículo escrito por Mayank Rana 1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *