sue
  • math 모듈1
    2020년 08월 18일 21시 16분 24초에 업로드 된 글입니다.
    작성자: sue24

     

    C standard에서 정의한 수학 함수들에 접근할 수 있게 한다.

    python에서 math 모듈의 함수를 쓰려면 상단에 import math 를 써 줘야 한다.

    대부분의 리턴 값은 float이다.

    +) 복소수에 기능을 적용하려면 cmath 모듈을 적용해야 한다.

     

    math.ceil(x)

    올림.

    math.ceil(3.2) --> 4

    math.comb(n,k)

    조합.

    n개의 아이템 중에서 중복이나 순서 없이 k개의 아이템을 고르는 방법의 수

    n, k는 양의 정수

    • k <= n이면, n! / (k! * (n-k)!)

    • k > n이면, 0

    math.copysign(x, y)

    y의 부호에 x의 절댓값을 리턴한다.

    math.copysign(-10, 22) --> 10

    math.fabs(x)

    절댓값.

    math.factorial(x)

    x! 리턴

    x는 양수이거나 진정수여야 한다.

    math.floor(x)

    내림.

    math.fmod(x,y)

    x 나누기 y를 한 나머지.

    파이썬의 나머지 계산식인 x % y와 똑같지는 않다.

    fmod()는 주로 float와 쓰고, x % y는 주로 정수와 쓴다.

    math.frexp(x)

    (로그의 가수, 지수)를 리턴한다.

    가수는 float이고 지수는 integer이다.

    x = m * 2**e

    x가 0이라면 (0.0, 0)을 리턴한다.

    x가 0이 아니라면 가수의 절댓값은 항상 0.5 이상 1 미만이다.

    math.fsum(iterable)

    iterable 안에 있는 원소들의 정확한 float 합.

    sum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
    // 0.999999999999999
    fsum([.1, .1, .1, .1, .1, .1, .1, .1, .1, .1])
    // 1.0

    math.gcd(a,b)

    a와 b의 최대공약수

    gcd(0, 0)은 0이다.

    math.isclose(a, b, *, rel_tol=le-09, abs_tol=0.0)

    boolean 값을 리턴한다.

    a와 b가 가까우면 true, 아니면 false

    두 수가 가깝다는 기준은 rel_tol과 abs_tol에 의해 정해진다.

    rel_tol은 relative tolerance로 a와 b 사이에 허용되는 절댓값의 최대 차이를 나타낸다.

    rel_tol을 5% 주고 싶다면 rel_tol=0.05를 넘기면 된다.

    abs_tol은 absolute tolerance로 a와 b 사이에 허용되는 절댓값의 최소 차이다.

    abs_tol은 최소 0이어야 한다.

    math.isfinite(x)

    x가 무한대나 NaN이 아니라면 true를 리턴하고 아니라면 false를 리턴한다.

    0.0은 유한한 숫자다.

    math.isinf(x)

    x가 음/양의 무한대이면 true를 리턴한다.

    math.isnan(x)

    x가 NaN이면 true를 리턴한다.

    math.isqrt(n)

    n의 제곱근.

    n은 양의 정수여야 한다.

    math.1dexp(x, i)

    x * (2**i)

    frexp()의 반대라고 할 수 있다.

    math.modf(x)

    x의 소수 부분과 정수 부분을 리턴한다.

    둘 모두 x의 부호를 가지고, float 타입이다.

    math.perm(n, k=None)

    순열

    n개의 아이템 중에서 순서는 있지만 중복은 없게 k개의 아이템을 고르는 방법의 수

    n, k는 양의 정수이다.

    • k <= n이라면, n! / (n-k)!

    • k > n이라면, 0을 리턴한다.

    k가 명시되지 않으면 k는 n으로 간주한다. (리턴 값은 n!)

    math.prod(iterable, *, start=1)

    iterable의 모든 원소를 곱한다.

    시작값의 디폴트는 1이다.

    만약 iterable이 비어있으면 시작값을 리턴한다.

    import math
    
    arr = [1, 2, 3]
    print(math.prod(arr))
    // 6
    tup = (0.1, 0.2, 0.3)
    print(math.prod(tup))
    // 0.006
    seq = range(1, 10)
    print(math.prod(seq))
    // 362,880

    math.trunc(x)

    x의 정수화.

    부호는 x와 똑같다.

    NaN은 NaN, null은 0을 리턴한다.

    import math
    
    print(math.trunc(5.77))
    // 5
    print(math.trunc(-32.98))
    // -32

    '알고리즘' 카테고리의 다른 글

    연결 리스트  (0) 2020.08.24
    LIST  (0) 2020.08.05
    BIg-O  (0) 2020.08.02
    Computational Thinking이 필요한 이유?  (0) 2019.10.07
    댓글