Dado un valor de tan(Θ) y una variable n <=15. La tarea es encontrar el valor de tan(nΘ) usando la propiedad de las funciones trigonométricas.
Ejemplos :
Input: tan(Θ) = 0.3, n = 10 Output: -2.15283 Input: tan(Θ) = 0.3, n = 5 Output: 0.37293
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 :
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ program to find the value // of cos(n-theta) #include <bits/stdc++.h> #define ll long long int #define MAX 16 using namespace std; ll nCr[MAX][MAX] = { 0 }; // This function use 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 double findTanNTheta(double tanTheta, ll n) { // store required answer double ans = 0, numerator = 0, denominator = 0; // use to toggle sign in sequence. ll toggle = 1; // calculate numerator for (int i = 1; i <= n; i += 2) { numerator = numerator + nCr[n][i] * pow(tanTheta, i) * toggle; toggle = toggle * -1; } // calculate denominator denominator = 1; toggle = -1; for (int i = 2; i <= n; i += 2) { numerator = numerator + nCr[n][i] * pow(tanTheta, i) * toggle; toggle = toggle * -1; } ans = numerator / denominator; return ans; } // Driver code. int main() { binomial(); double tanTheta = 0.3; ll n = 10; cout << findTanNTheta(tanTheta, n) << endl; return 0; }
Java
// Java program to find the value // of cos(n-theta) public class GFG { private static final int MAX = 16 ; static long nCr[][] = new long [MAX][MAX] ; // This function use 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 static double findTanNTheta(double tanTheta, int n) { // store required answer double ans = 0, numerator = 0, denominator = 0; // use to toggle sign in sequence. long toggle = 1; // calculate numerator for (int i = 1; i <= n; i += 2) { numerator = numerator + nCr[n][i] * Math.pow(tanTheta, i) * toggle; toggle = toggle * -1; } // calculate denominator denominator = 1; toggle = -1; for (int i = 2; i <= n; i += 2) { numerator = numerator + nCr[n][i] * Math.pow(tanTheta, i) * toggle; toggle = toggle * -1; } ans = numerator / denominator; return ans; } // Driver code public static void main(String args[]) { binomial(); double tanTheta = 0.3; int n = 10; System.out.println(findTanNTheta(tanTheta, n)); } // This code is contributed by ANKITRAI1 }
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 findTanNTheta(tanTheta,n): # store required answer numerator=0 denominator=1 # to store required answer ans = 0 # use to toggle sign in sequence. toggle = 1 # calculate numerator for i in range(1,n+1,2): numerator = (numerator + nCr[n][i]* (tanTheta**(i)) * toggle) toggle = toggle * -1 # calculate denominator toggle=-1 for i in range(2,n+1,2): numerator = (numerator + nCr[n][i]* (tanTheta**i) * toggle) toggle = toggle * -1 ans=numerator/denominator return ans # Driver code if __name__=='__main__': binomial() tanTheta = 0.3 n = 10 print(findTanNTheta(tanTheta, n)) # this code is contributed by sahilshelangia
C#
// C# program to find the value // of cos(n-theta) using System; public class GFG { private static int MAX = 16 ; static long[,] nCr = new long [MAX,MAX] ; // This function use 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 static double findTanNTheta(double tanTheta, int n) { // store required answer double ans = 0, numerator = 0, denominator = 0; // use to toggle sign in sequence. long toggle = 1; // calculate numerator for (int i = 1; i <= n; i += 2) { numerator = numerator + nCr[n,i] * Math.Pow(tanTheta, i) * toggle; toggle = toggle * -1; } // calculate denominator denominator = 1; toggle = -1; for (int i = 2; i <= n; i += 2) { numerator = numerator + nCr[n,i] * Math.Pow(tanTheta, i) * toggle; toggle = toggle * -1; } ans = numerator / denominator; return ans; } // Driver code public static void Main() { binomial(); double tanTheta = 0.3; int n = 10; Console.Write(findTanNTheta(tanTheta, n)); } }
PHP
<?php // PHP program to find the value // of cos(n-theta) $MAX=16; $nCr=array_fill(0, $MAX, array_fill(0, $MAX, 0)); // This function use to calculate the // binomial coefficient upto 15 function binomial() { global $MAX,$nCr; // use simple DP to find coefficient for ($i = 0; $i < $MAX; $i++) { for ($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 function findTanNTheta($tanTheta, $n) { global $MAX,$nCr; // store required answer $ans = 0; $numerator = 0; $denominator = 0; // use to toggle sign in sequence. $toggle = 1; // calculate numerator for ($i = 1; $i <= $n; $i += 2) { $numerator = $numerator + $nCr[$n][$i] * pow($tanTheta, $i) * $toggle; $toggle = $toggle * -1; } // calculate denominator $denominator = 1; $toggle = -1; for ($i = 2; $i <= $n; $i += 2) { $numerator = $numerator + $nCr[$n][$i] * pow($tanTheta, $i) * $toggle; $toggle = $toggle * -1; } $ans = $numerator / $denominator; return $ans; } // Driver code. binomial(); $tanTheta = 0.3; $n = 10; echo findTanNTheta($tanTheta, $n); // This code is contributed by mits ?>
Javascript
<script> // Javascript program to find the value // of cos(n-theta) MAX = 16 var nCr = Array.from(Array(MAX), ()=> new Array(MAX)); // This function use 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 function findTanNTheta(tanTheta, n) { // store required answer ans = 0, numerator = 0, denominator = 0; // use to toggle sign in sequence. toggle = 1; // calculate numerator for (var i = 1; i <= n; i += 2) { numerator = numerator + nCr[n][i] * Math.pow(tanTheta, i) * toggle; toggle = toggle * -1; } // calculate denominator denominator = 1; toggle = -1; for (var i = 2; i <= n; i += 2) { numerator = numerator + nCr[n][i] * Math.pow(tanTheta, i) * toggle; toggle = toggle * -1; } ans = numerator / denominator; return ans.toFixed(5); } // Driver code. binomial(); var tanTheta = 0.3; var n = 10; document.write( findTanNTheta(tanTheta, n)); </script>
Producción:
-2.15283
Publicación traducida automáticamente
Artículo escrito por sahilshelangia y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA