Wortels van eenheid

Gegeven een klein geheel getal n, druk dan alle n-de eenheidswortels af tot maximaal 6 significante cijfers. We moeten eigenlijk alle wortels van vergelijking x vinden N - 1.

Voorbeelden:  

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 x 2  - 1 = 0 has 2 distinct roots i.e. 1 and -1  

Van elk complex getal wordt gezegd dat het de eenheidswortel is als het 1 oplevert wanneer het tot een bepaalde macht wordt verheven. 
n-de eenheidswortel is elk complex getal dat 1 oplevert als het wordt verheven tot de macht n.  

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 

Wij kunnen gebruik maken van de De Moivre-formule hier   

( 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 

Met behulp van het bovenstaande feit kunnen we gemakkelijk alle n-de eenheidswortels afdrukken! 

Hieronder vindt u het programma voor hetzelfde. 

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  (  '%.6f  n  '       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>

Uitgang:  

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 


Referenties: Wikipedia