ブリブリ備忘録 おっ、python

HackerRankの問題とコメント(python3) 拙いですが...

Polar Coordinates  複素数

・問題

A complex number  

                   z=x+yj

is completely determined by its real part  and imaginary part 
Here,  is the imaginary unit.

 

A polar coordinate (

is completely determined by modulus  and phase angle .

If we convert complex number  to its polar coordinate, we find:
: Distance from  to origin, i.e., 
: Counter clockwise angle measured from the positive -axis to the line segment that joins to the origin.

Python's cmath module provides access to the mathematical functions for complex numbers.

 
This tool returns the phase of complex number  (also known as the argument of ).

>>> phase(complex(-1.0, 0.0))
3.1415926535897931

 
This tool returns the modulus (absolute value) of complex number .

>>> abs(complex(-1.0, 0.0))
1.0

Task 
You are given a complex . Your task is to convert it to polar coordinates.

Input Format

A single line containing the complex number . Note: complex() function can be used in python to convert the input as a complex number.

Constraints

Given number is a valid complex number

Output Format

Output two lines: 
The first line should contain the value of 
The second line should contain the value of .

Sample Input

  1+2j

Sample Output

 2.23606797749979 
 1.1071487177940904

Note: The output should be correct up to 3 decimal places.

ソースコード

import cmath
c = complex(input())
print (abs(c))
print (cmath.phase(c))

・コメント

 複素数を扱うために最初に

import cmath

を挿入する

絶対値は組み込みのabs()関数で計算でき、絶対値を扱うcmathモジュールの関数はないので、以下のようになっている。

 

abs(c)

また、偏角を求めるのには以下の関数を用いている

cmath.phase(c)

・URL

https://www.hackerrank.com/challenges/polar-coordinates/problem