Vienotības saknes

Ņemot vērā mazu veselu skaitli N izdrukāt visas vienotības saknes līdz 6 nozīmīgiem cipariem. Mums principā jāatrod visas X vienādojuma saknes n - 1.

Piemēri:  

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  

Jebkurš sarežģīts skaitlis tiek uzskatīts par vienotības sakni, ja tas dod 1, ja to palielina pie zināmas enerģijas. 
Vienotības sakne ir jebkurš sarežģīts skaitlis, ka tas dod 1, ja to paceltu ar jaudu 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 

Mēs varam izmantot De Moivre formula šeit   

( 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 

Izmantojot iepriekš minēto faktu, mēs varam viegli izdrukāt visas vienotības saknes! 

Zemāk ir programma tam pašam. 

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>

Izlaide:  

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 


Atsauces: Wikipedia