Dados dos números A y B , la tarea es comprobar que A y B están en la proporción áurea.
Proporción áurea: Se dice que dos números están en la proporción áurea si su proporción es igual a la razón de la suma de los dos números al número mayor. Aquí a > b > 0, a continuación se muestra la representación geométrica de la proporción áurea:
Ejemplos:
Input: A = 1, B = 0.618 Output: Yes Explanation: These two numbers together forms Golden ratio
Input: A = 61.77, B = 38.22 Output Yes Explanation: These two numbers together forms Golden ratio
Planteamiento: La idea es encontrar dos razones y comprobar que esta razón es igual a la razón áurea. Eso es 1.618.
// Here A denotes the larger number
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation to check // whether two numbers are in // golden ratio with each other #include <bits/stdc++.h> using namespace std; // Function to check that two // numbers are in golden ratio bool checkGoldenRatio(float a, float b) { // Swapping the numbers such // that A contains the maximum // number between these numbers if(a <= b) { float temp = a; a = b; b = temp; } // First Ratio std::stringstream ratio1; ratio1 << std :: fixed << std :: setprecision(3) << (a / b); // Second Ratio std::stringstream ratio2; ratio2 << std :: fixed << std :: setprecision(3) << (a + b) / a; // Condition to check that two // numbers are in golden ratio if((ratio1.str() == ratio2.str()) && ratio1.str() == "1.618") { cout << "Yes" << endl; return true; } else { cout << "No" << endl; return false; } } // Driver code int main() { float a = 0.618; float b = 1; // Function Call checkGoldenRatio(a, b); return 0; } // This code is contributed by divyeshrabadiya07
Java
// Java implementation to check // whether two numbers are in // golden ratio with each other class GFG{ // Function to check that two // numbers are in golden ratio public static Boolean checkGoldenRatio(float a, float b) { // Swapping the numbers such // that A contains the maximum // number between these numbers if (a <= b) { float temp = a; a = b; b = temp; } // First Ratio String ratio1 = String.format("%.3f", a / b); // Second Ratio String ratio2 = String.format("%.3f", (a + b) / a); // Condition to check that two // numbers are in golden ratio if (ratio1.equals(ratio2) && ratio1.equals("1.618")) { System.out.println("Yes"); return true; } else { System.out.println("No"); return false; } } // Driver code public static void main(String []args) { float a = (float)0.618; float b = 1; // Function Call checkGoldenRatio(a, b); } } // This code is contributed by rag2127
Python3
# Python3 implementation to check # whether two numbers are in # golden ratio with each other # Function to check that two # numbers are in golden ratio def checkGoldenRatio(a, b): # Swapping the numbers such # that A contains the maximum # number between these numbers a, b = max(a, b), min(a, b) # First Ratio ratio1 = round(a/b, 3) # Second Ratio ratio2 = round((a+b)/a, 3) # Condition to check that two # numbers are in golden ratio if ratio1 == ratio2 and\ ratio1 == 1.618: print("Yes") return True else: print("No") return False # Driver Code if __name__ == "__main__": a = 0.618 b = 1 # Function Call checkGoldenRatio(a, b)
C#
// C# implementation to check // whether two numbers are in // golden ratio with each other using System; using System.Collections.Generic; class GFG { // Function to check that two // numbers are in golden ratio static bool checkGoldenRatio(float a, float b) { // Swapping the numbers such // that A contains the maximum // number between these numbers if(a <= b) { float temp = a; a = b; b = temp; } // First Ratio string ratio1 = String.Format("{0:0.000}", a / b); // Second Ratio string ratio2 = String.Format("{0:0.000}", (a + b) / a); // Condition to check that two // numbers are in golden ratio if(ratio1 == ratio2 && ratio1 == "1.618") { Console.WriteLine("Yes"); return true; } else { Console.WriteLine("No"); return false; } } // Driver code static void Main() { float a = (float)0.618; float b = 1; // Function Call checkGoldenRatio(a, b); } } // This code is contributed by divyesh072019
Javascript
<script> // Javascript implementation to check // whether two numbers are in // golden ratio with each other // Function to check that two // numbers are in golden ratio function checkGoldenRatio(a, b) { // Swapping the numbers such // that A contains the maximum // number between these numbers if (a <= b) { let temp = a; a = b; b = temp; } // First Ratio let ratio1 = (a / b).toFixed(3); // Second Ratio let ratio2 = ((a + b) / a).toFixed(3); // Condition to check that two // numbers are in golden ratio if ((ratio1 == ratio2) && ratio1 == "1.618") { document.write("Yes"); return true; } else { document.write("No"); return false; } } // Driver Code let a = 0.618; let b = 1; // Function Call checkGoldenRatio(a, b); </script>
Yes
Tiempo Complejidad: O(1)
Espacio Auxiliar: O(1)
Referencias: https://en.wikipedia.org/wiki/Golden_ratio
Publicación traducida automáticamente
Artículo escrito por thakurabhaysingh445 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA