Número máximo de intersecciones de línea formadas a través de la intersección de N planos

Dados N planos. La tarea es encontrar el número máximo de intersecciones de línea que se pueden formar a través de las intersecciones de N planos.
Ejemplos: 
 

Entrada: N = 3 
Salida: 3
Entrada: N = 5 
Salida: 10
 

Aproximación:
Sean N planos tales que no se intersequen 3 planos en una sola línea de intersección y no haya 2 planos paralelos entre sí. Debería ser posible agregar el plano ‘N+1’ a este espacio manteniendo las dos condiciones anteriores. En ese caso, este plano intersecaría cada uno de los N planos en ‘N’ líneas distintas. 
Por lo tanto, el plano ‘N+1’ podría agregar como máximo ‘N’ nuevas líneas al recuento total de líneas de intersección. De manera similar, el plano N-ésimo podría agregar como máximo “N-1′ líneas distintas de intersección. Es fácil entonces ver que, para planos ‘N’, el número máximo de líneas de intersección podría ser: 
 

(N-1) + (N-2) +...+ 1 = N*(N-1)/2

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

C++

// C++ implementation of the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to count maximum number of
// intersections possible
int countIntersections(int n)
{
    return n * (n - 1) / 2;
}
 
// Driver Code
int main()
{
    int n = 3;
 
    cout << countIntersections(n);
 
    return 0;
}

Java

// Java implementation of the approach
class GFG
{
     
    // Function to count maximum number of
    // intersections possible
    static int countIntersections(int n)
    {
        return n * (n - 1) / 2;
    }
     
    // Driver Code
    public static void main (String[] args)
    {
        int n = 3;
     
        System.out.println(countIntersections(n));
    }
}
 
// This code is contributed by AnkitRai01

Python3

# Python3 implementation of the above approach
 
# Function to count maximum number of
# intersections possible
def countIntersections(n):
    return n * (n - 1) // 2
 
# Driver Code
n = 3
 
print(countIntersections(n))
 
# This code is contributed by mohit kumar

C#

// C# implementation of the approach
using System;
 
class GFG
{
     
    // Function to count maximum number of
    // intersections possible
    static int countIntersections(int n)
    {
        return n * (n - 1) / 2;
    }
     
    // Driver Code
    public static void Main (String[] args)
    {
        int n = 3;
     
        Console.WriteLine(countIntersections(n));
    }
}
 
// This code is contributed by 29AjayKumar

Javascript

<script>
 
// Javascript implementation of the above approach
 
// Function to count maximum number of
// intersections possible
function countIntersections(n)
{
    return n * (n - 1) / 2;
}
 
// Driver Code
var n = 3;
document.write(countIntersections(n));
 
</script>
Producción: 

3

 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)
 

Publicación traducida automáticamente

Artículo escrito por spp____ 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 *