Dado un valor de cos(Θ) y una variable . La tarea es encontrar el valor de cos(nΘ) usando la propiedad de las funciones trigonométricas.
Nota: n <= 15.
Ejemplos :
Input : cos(Θ) = 0.5, n = 10 Output : -0.5 Input :cos(Θ) = 0.5, n = 3 Output : -0.995523
El problema se puede resolver usando el teorema de De moivre y el teorema del binomio como se describe a continuación:
Usando el teorema de De-Moivre, tenemos :
Ahora, como se conoce el valor tanto de sin(Θ) como de cos(Θ). Ponga los valores en la ecuación anterior para obtener la respuesta.
A continuación se muestra la implementación de la idea anterior:
C++
// CPP program to find the value of cos(n-theta) #include <bits/stdc++.h> #define MAX 16 using namespace std; int nCr[MAX][MAX] = { 0 }; // Function to calculate the binomial // coefficient upto 15 void binomial() { // use simple DP to find coefficient for (int i = 0; i < MAX; i++) { for (int j = 0; j <= i; j++) { if (j == 0 || j == i) nCr[i][j] = 1; else nCr[i][j] = nCr[i - 1][j] + nCr[i - 1][j - 1]; } } } // Function to find the value of cos(n-theta) double findCosnTheta(double cosTheta, int n) { // find sinTheta from cosTheta double sinTheta = sqrt(1 - cosTheta * cosTheta); // to store required answer double ans = 0; // use to toggle sign in sequence. int toggle = 1; for (int i = 0; i <= n; i += 2) { ans = ans + nCr[n][i] * pow(cosTheta, n - i) * pow(sinTheta, i) * toggle; toggle = toggle * -1; } return ans; } // Driver code int main() { binomial(); double cosTheta = 0.5; int n = 10; cout << findCosnTheta(cosTheta, n) << endl; return 0; }
Java
// Java program to find the value of cos(n-theta) class GFG { static int MAX=16; static int[][] nCr=new int[MAX][MAX]; // Function to calculate the binomial // coefficient upto 15 static void binomial() { // use simple DP to find coefficient for (int i = 0; i < MAX; i++) { for (int j = 0; j <= i; j++) { if (j == 0 || j == i) nCr[i][j] = 1; else nCr[i][j] = nCr[i - 1][j] + nCr[i - 1][j - 1]; } } } // Function to find the value of cos(n-theta) static double findCosnTheta(double cosTheta, int n) { // find sinTheta from cosTheta double sinTheta = Math.sqrt(1 - cosTheta * cosTheta); // to store required answer double ans = 0; // use to toggle sign in sequence. int toggle = 1; for (int i = 0; i <= n; i += 2) { ans = ans + nCr[n][i] * Math.pow(cosTheta, n - i) * Math.pow(sinTheta, i) * toggle; toggle = toggle * -1; } return ans; } // Driver code public static void main(String[] args) { binomial(); double cosTheta = 0.5; int n = 10; System.out.println(String.format("%.5f",findCosnTheta(cosTheta, n))); } } // This code is contributed by mits
Python3
# Python3 program to find the value of cos(n-theta) import math MAX=16 nCr=[[0 for i in range(MAX)] for i in range(MAX)] # Function to calculate the binomial # coefficient upto 15 def binomial(): # use simple DP to find coefficient for i in range(MAX): for j in range(0,i+1): if j == 0 or j == i: nCr[i][j] = 1 else: nCr[i][j] = nCr[i - 1][j] + nCr[i - 1][j - 1] # Function to find the value of cos(n-theta) def findCosnTheta(cosTheta,n): # find sinTheta from cosTheta sinTheta = math.sqrt(1 - cosTheta * cosTheta) # to store the required answer ans = 0 # use to toggle sign in sequence. toggle = 1 for i in range(0,n+1,2): ans = ans + nCr[n][i]*(cosTheta**(n - i)) *(sinTheta**i) * toggle toggle = toggle * -1 return ans # Driver code if __name__=='__main__': binomial() cosTheta = 0.5 n = 10 print(findCosnTheta(cosTheta, n)) # this code is contributed by sahilshelangia
C#
// C# program to find the value of cos(n-theta) using System; public class GFG{ static int MAX=16; static int [,]nCr=new int[MAX,MAX]; // Function to calculate the binomial // coefficient upto 15 static void binomial() { // use simple DP to find coefficient for (int i = 0; i < MAX; i++) { for (int j = 0; j <= i; j++) { if (j == 0 || j == i) nCr[i,j] = 1; else nCr[i,j] = nCr[i - 1,j] + nCr[i - 1,j - 1]; } } } // Function to find the value of cos(n-theta) static double findCosnTheta(double cosTheta, int n) { // find sinTheta from cosTheta double sinTheta = Math.Sqrt(1 - cosTheta * cosTheta); // to store required answer double ans = 0; // use to toggle sign in sequence. int toggle = 1; for (int i = 0; i <= n; i += 2) { ans = ans + nCr[n,i] * Math.Pow(cosTheta, n - i) * Math.Pow(sinTheta, i) * toggle; toggle = toggle * -1; } return ans; } // Driver code public static void Main() { binomial(); double cosTheta = 0.5; int n = 10; Console.WriteLine(findCosnTheta(cosTheta, n)); } } // This code is contributed by 29AjayKumar
Javascript
<script> // Javascript program to find the value of cos(n-theta) MAX = 16 var nCr = Array.from(Array(MAX), () => new Array(MAX)); // Function to calculate the binomial // coefficient upto 15 function binomial() { // use simple DP to find coefficient for (var i = 0; i < MAX; i++) { for (var j = 0; j <= i; j++) { if (j == 0 || j == i) nCr[i][j] = 1; else nCr[i][j] = nCr[i - 1][j] + nCr[i - 1][j - 1]; } } } // Function to find the value of cos(n-theta) function findCosnTheta(cosTheta, n) { // find sinTheta from cosTheta var sinTheta = Math.sqrt(1 - cosTheta * cosTheta); // to store required answer var ans = 0; // use to toggle sign in sequence. var toggle = 1; for (var i = 0; i <= n; i += 2) { ans = ans + nCr[n][i] * Math.pow(cosTheta, n - i) * Math.pow(sinTheta, i) * toggle; toggle = toggle * -1; } return ans.toFixed(1); } // Driver code binomial(); var cosTheta = 0.5; var n = 10; document.write( findCosnTheta(cosTheta, n)); </script>
Producción:
-0.5
Publicación traducida automáticamente
Artículo escrito por sahilshelangia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA