logo

Egység gyökerei

Adva egy kis egész számot, nyomtassa ki az egység összes gyökerét, akár 6 jelentős számjegyet. Alapvetően meg kell találnunk az X egyenlet összes gyökerétn- 1.

Példák:  



Input : n = 1 Output : 1.000000 + i 0.000000 x - 1 = 0  has only one root i.e. 1 Input : 2 Output : 1.000000 + i 0.000000 -1.000000 + i 0.000000 x2 - 1 = 0 has 2 distinct roots i.e. 1 and -1 

Bármely összetett számról azt mondják, hogy az egység gyökere, ha 1 ad, ha valamilyen energiára emelik. 
Az egység gyökere minden olyan összetett szám, amelyet 1 ad, ha az n teljesítményre emelik.  

Mathematically An nth root of unity where n is a positive integer (i.e. n = 1 2 3 …) is a number z satisfying the equation z^n = 1 or  z^n - 1 = 0

Használhatjuk a De Moivre képlete itt   

( Cos x + i Sin x )^k = Cos kx + i Sin kx Setting x = 2*pi/n we can obtain all the nth roots of unity using the fact that Nth roots are set of numbers given by Cos (2*pi*k/n) + i Sin(2*pi*k/n) Where 0 <= k < n

A fenti tény felhasználásával könnyen kinyomtathatjuk az egység összes gyökerét! 



tömbök visszaadása java-ban

Az alábbiakban látható a program ugyanezen. 

C++
// C++ program to print n'th roots of unity #include    using namespace std; // This function receives an integer n  and prints // all the nth roots of unity void printRoots(int n) {  // theta = 2*pi/n  double theta = M_PI*2/n;  // print all nth roots with 6 significant digits  for(int k=0; k<n; k++)  {  // calculate the real and imaginary part of root  double real = cos(k*theta);  double img = sin(k*theta);  // Print real and imaginary parts  printf('%.6f' real);  img >= 0? printf(' + i '): printf(' - i ');  printf('%.6fn' abs(img));  } } // Driver function to check the program int main() {  printRoots(1);  cout << endl;  printRoots(2);  cout << endl;  printRoots(3);  return 0; } 
Java
// Java program to print n'th roots of unity import java.io.*; class GFG { // This function receives an integer n  and prints // all the nth roots of unity static void printRoots(int n) {  // theta = 2*pi/n  double theta = 3.14*2/n;  // print all nth roots with 6 significant digits  for(int k=0; k<n; k++)  {  // calculate the real and imaginary part of root  double real = Math.cos(k*theta);  double img = Math.sin(k*theta);  // Print real and imaginary parts  System.out.println(real);  if (img >= 0)  System.out.println(' + i ');  else  System.out.println(' - i ');  System.out.println(Math.abs(img));  } } // Driver function to check the program public static void main (String[] args) {  printRoots(1);  //System.out.println();  printRoots(2);  //System.out.println();  printRoots(3); } } // This code is contributed by Raj 
Python3
# Python3 program to print n'th roots of unity import math # This function receives an integer n  and prints # all the nth roots of unity def printRoots(n): # theta = 2*pi/n theta = math.pi * 2 / n # print all nth roots with 6 significant digits for k in range(0 n): # calculate the real and imaginary part of root real = math.cos(k * theta) img = math.sin(k * theta) # Print real and imaginary parts print(real end=' ') if(img >= 0): print(' + i ' end=' ') else: print(' - i ' end=' ') print(abs(img)) # Driver function to check the program if __name__=='__main__': printRoots(1) printRoots(2) printRoots(3) # This code is contributed by # Sanjit_Prasad 
C#
// C# program to print n'th roots of unity  using System; class GFG {  // This function receives an integer n  and prints  // all the nth roots of unity  static void printRoots(int n)  {   // theta = 2*pi/n   double theta = 3.14*2/n;   // print all nth roots with 6 significant digits   for(int k=0; k<n; k++)   {   // calculate the real and imaginary part of root   double real = Math.Cos(k*theta);   double img = Math.Sin(k*theta);   // Print real and imaginary parts   Console.Write(real);   if (img >= 0)   Console.Write(' + i ');   else  Console.Write(' - i ');   Console.WriteLine(Math.Abs(img));   }  }  // Driver function to check the program  static void Main()  {   printRoots(1);     printRoots(2);     printRoots(3);  }  }  // This code is contributed by mits 
PHP
 // PHP program to print n'th roots of unity // This function receives an integer n  // and prints all the nth roots of unity function printRoots($n) { // theta = 2*pi/n $theta = pi() * 2 / $n; // print all nth roots with 6 // significant digits for($k = 0; $k < $n; $k++) { // calculate the real and imaginary  // part of root $real = cos($k * $theta); $img = sin($k * $theta); // Print real and imaginary parts print(round($real 6)); $img >= 0 ? print(' + i '): print(' - i '); printf(round(abs($img) 6) . 'n'); } } // Driver Code printRoots(1); printRoots(2); printRoots(3); // This code is contributed by mits ?> 
JavaScript
<script> // javascript program to print n'th roots of unity // This function receives an integer n  and prints // all the nth roots of unity function printRoots(n) {  // theta = 2*pi/n  var theta = (3.14*2/n);  // print all nth roots with 6 significant digits  for(k = 0; k < n; k++)  {  // calculate the real and imaginary part of root  var real = Math.cos(k*theta);  var img = Math.sin(k*theta);  // Print real and imaginary parts  document.write(real.toFixed(6));  if (img >= 0)  document.write(' + i ');  else  document.write(' - i ');  document.write(Math.abs(img).toFixed(6)+'  
'
); } } // Driver function to check the program printRoots(1); //document.write('
');
printRoots(2); //document.write('
');
printRoots(3); // This code is contributed by shikhasingrajput </script>

Kimenet:  

1.000000 + i 0.000000 1.000000 + i 0.000000 -1.000000 + i 0.000000 1.000000 + i 0.000000 -0.500000 + i 0.866025 -0.500000 - i 0.866025


Hivatkozások: Wikipédia