Cuadrado más grande que se puede inscribir dentro de un hexágono

Dado un hexágono regular de lado a , la tarea es encontrar el área del cuadrado más grande que se puede inscribir en él.
Ejemplos: 
 

Entrada: a = 6 
Salida: 57,8817
Entrada: a = 8 
Salida: 102,901 
 

Planteamiento: El cuadrado que derivaremos tendrá el mismo centro y ejes del hexágono. Esto se debe a que el cuadrado se hará más pequeño si lo rotamos. 
 

Los lados del hexágono son iguales, es decir , a = b + c
Ahora, sea d la longitud del lado del cuadrado inscrito, 
luego el lado superior del cuadrado, d = 2 * c * sin(60)
Y, el lado izquierdo del cuadrado, d = a + 2 * b * sin(30)
Sustituyendo por c, d = 2 * (a – b) * sin(60)
Ahora tomando d y reorganizando, obtenemos, b / a = (2 * sin(60) – 1) / (2 * (sin(30) + sin(60))) 
Entonces, b / a = 2 – √ 3 
Ahora, sustituyendo la relación de b y a en la ecuación del lado izquierdo del cuadrado, obtenemos, 
d / a = 3 – √3 es decird/a = 1.268 
Por lo tanto, d = 1.268 * a 
 

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

C++

// C++ program to find the area of the largest square
// that can be inscribed within the hexagon
#include <bits/stdc++.h>
using namespace std;
 
// Function to find the area
// of the square
float squareArea(float a)
{
 
    // Side cannot be negative
    if (a < 0)
        return -1;
 
    // Area of the square
    float area = pow(1.268, 2) * pow(a, 2);
    return area;
}
 
// Driver code
int main()
{
    float a = 6;
    cout << squareArea(a) << endl;
    return 0;
}

Java

// Java program to find the area of the largest square
// that can be inscribed within the hexagon
class Solution {
    // Function to find the area
    // of the square
    static float squareArea(float a)
    {
 
        // Side cannot be negative
        if (a < 0)
            return -1;
 
        // Area of the square
        float area = (float)(Math.pow(1.268, 2) * Math.pow(a, 2));
        return area;
    }
 
    // Driver code
    public static void main(String args[])
    {
        float a = 6;
        System.out.println(squareArea(a));
    }
}
 
// This code is contributed by Arnab Kundu

Python3

# Python program to find the area of the largest square
# that can be inscribed within the hexagon
 
# Function to find the area
# of the square
def squareArea(a):
 
    # Side cannot be negative
    if (a < 0):
        return -1;
 
    # Area of the square
    area = (1.268 ** 2) * (a ** 2);
    return area;
 
# Driver code
a = 6;
print(squareArea(a));
 
# This code contributed by PrinciRaj1992

C#

// C# program to find the area of the largest square
// that can be inscribed within the hexagon
using System;
class Solution {
    // Function to find the area
    // of the square
    static float squareArea(float a)
    {
 
        // Side cannot be negative
        if (a < 0)
            return -1;
 
        // Area of the square
        float area = (float)(Math.Pow(1.268, 2) * Math.Pow(a, 2));
        return area;
    }
 
    // Driver code
    public static void Main()
    {
        float a = 6;
        Console.WriteLine(squareArea(a));
    }
}
 
// This code is contributed by  anuj_67..

PHP

<?php
// PHP program to find the area of the largest square
// that can be inscribed within the hexagon
 
// Function to find the area
// of the square
function squareArea($a)
{
 
    // Side cannot be negative
    if ($a < 0)
        return -1;
 
    // Area of the square
    $area = pow(1.268, 2) * pow($a, 2);
    return $area;
}
 
// Driver code
$a = 6;
echo squareArea($a), "\n";
 
// This code is contributed by Tushil
?>

Javascript

<script>
// javascript program to find the area of the largest square
// that can be inscribed within the hexagon
 
// Function to find the area
// of the square
function squareArea(a)
{
 
  // Side cannot be negative
  if (a < 0)
  return -1;
 
  // Area of the square
  var area = (Math.pow(1.268, 2) * Math.pow(a, 2));
  return area;
}
 
// Driver code
 
var a = 6;
document.write(squareArea(a).toFixed(5));
 
// This code is contributed by Princi Singh
</script>
Producción: 

57.8817

 

Complejidad de tiempo: O(1)

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

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