Dada una elipse, con eje mayor de longitud 2a y 2b . La tarea es encontrar el área del rectángulo más grande que se puede inscribir en él.
Ejemplos :
Input: a = 4, b = 3 Output: 24 Input: a = 10, b = 8 Output: 160
Enfoque :
Deje que la esquina superior derecha del rectángulo tenga coordenadas (x, y) ,
luego el área del rectángulo, A = 4*x*y .
Ahora,
Ecuación de la elipse, (x 2 /a 2 ) + (y 2 /b 2 ) = 1
Pensando en el área como una función de x , tenemos
dA/dx = 4xdy/dx + 4y
Ecuación diferencial de la elipse con respecto a x , tenemos
2x/a 2 + (2y/b 2 )dy/dx = 0 ,
entonces,
dy/dx = -b 2 x/a 2 y ,
y
dAdx = 4y – (4b 2 x 2 /a 2 y)
Poniendo esto a 0 y simplificando, tenemos y 2 = b 2 x 2/ un 2 .
De la ecuación de la elipse sabemos que,
y 2 =b 2 – b 2 x 2 /a2
Por lo tanto, y 2 =b 2 – y 2 , 2y 2 =b 2 , y y 2 b 2 = 1/2 .
Claramente, entonces, x 2 a 2 = 1/2 también, y el área se maximiza cuando
x= a/√2 y y=b/√2
Entonces el área máxima Área, A max = 2ab
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ Program to find the biggest rectangle // which can be inscribed within the ellipse #include <bits/stdc++.h> using namespace std; // Function to find the area // of the rectangle float rectanglearea(float a, float b) { // a and b cannot be negative if (a < 0 || b < 0) return -1; // area of the rectangle return 2 * a * b; } // Driver code int main() { float a = 10, b = 8; cout << rectanglearea(a, b) << endl; return 0; }
Java
// Java Program to find the biggest rectangle // which can be inscribed within the ellipse import java.util.*; import java.lang.*; import java.io.*; class GFG{ // Function to find the area // of the rectangle static float rectanglearea(float a, float b) { // a and b cannot be negative if (a < 0 || b < 0) return -1; // area of the rectangle return 2 * a * b; } // Driver code public static void main(String args[]) { float a = 10, b = 8; System.out.println(rectanglearea(a, b)); } }
Python 3
# Python 3 Program to find the biggest rectangle # which can be inscribed within the ellipse # Function to find the area # of the rectangle def rectanglearea(a, b) : # a and b cannot be negative if a < 0 or b < 0 : return -1 # area of the rectangle return 2 * a * b # Driver code if __name__ == "__main__" : a, b = 10, 8 print(rectanglearea(a, b)) # This code is contributed by ANKITRAI1
C#
// C# Program to find the // biggest rectangle which // can be inscribed within // the ellipse using System; class GFG { // Function to find the area // of the rectangle static float rectanglearea(float a, float b) { // a and b cannot be negative if (a < 0 || b < 0) return -1; // area of the rectangle return 2 * a * b; } // Driver code public static void Main() { float a = 10, b = 8; Console.WriteLine(rectanglearea(a, b)); } } // This code is contributed // by inder_verma
PHP
<?php // PHP Program to find the biggest // rectangle which can be inscribed // within the ellipse // Function to find the area // of the rectangle function rectanglearea($a, $b) { // a and b cannot be negative if ($a < 0 or $b < 0) return -1; // area of the rectangle return 2 * $a * $b; } // Driver code $a = 10; $b = 8; echo rectanglearea($a, $b); // This code is contributed // by inder_verma ?>
Javascript
<script> // javascript Program to find the biggest rectangle // which can be inscribed within the ellipse // Function to find the area // of the rectangle function rectanglearea(a , b) { // a and b cannot be negative if (a < 0 || b < 0) return -1; // area of the rectangle return 2 * a * b; } // Driver code var a = 10, b = 8; document.write(rectanglearea(a, b)); // This code contributed by Princi Singh </script>
160
Tiempo Complejidad: 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