Wurzeln der Einheit
Bei einer kleinen ganzen Zahl n werden alle n-ten Einheitswurzeln bis zu 6 signifikanten Ziffern ausgegeben. Wir müssen grundsätzlich alle Wurzeln der Gleichung x finden N - 1.
Beispiele:
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
Jede komplexe Zahl heißt Einheitswurzel, wenn sie bei Potenzierung 1 ergibt.
Die n-te Einheitswurzel ist eine beliebige komplexe Zahl, deren Potenz n den Wert 1 ergibt.
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
Wir können das nutzen De Moivres Formel 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
Mit der oben genannten Tatsache können wir leicht alle n-ten Einheitswurzeln drucken!
Unten finden Sie das entsprechende Programm.
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>
Ausgabe:
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
Referenzen: Wikipedia