728x90
목차

1. 이진연산 : AND(&), OR(|), XOR(^)

2. 이진연산을 수행하는 함수

3. 이진연산의 사용하는 예시

 

 

흔히 우리주위에서 볼 수 있는 것처럼 사람은 10진수 체계에 익숙하지만 컴퓨터는 2진수로 세상을 이해합니다.

컴퓨터의 경우 아예 모든 숫자와 문자를 포함한 정보를 다 결국 2진수로 이해하고 있죠.

보통 의식하지 못하지만 스마트 폰으로 간단한 덧셈 뺄셈을 하더라도 컴퓨터 자체는 좀 길게 돌아가서 수행합니다.

프로그램을 할 때라든가 대량의 연산을 할때는 에러를 막기 위해 이진수 자체를 이용한 연산을 사람이 직접 시도합니다.

오늘은 이런 이진 연산의 종류와 엑셀로 수행하는 방법을 알아보겠습니다.

 

 

1. 이진연산 : AND(&), OR(|), XOR(^)

 

숫자는 이진수로 나타낼 수 있습니다.

같은 자리의 수에 AND와 OR 연산자를 취하는 방법입니다.

 

먼저 예를 들어서 보여드리는게 쉽습니다.

 

< AND(&) 연산 >

64 & 227는 아래와 같습니다.

 

"&" 연산자 사용하기

 

먼저 64(01000000)와 227(11100011)을 이진수로 변환합니다.

둘 다 1인 것은 하나이고 그 위치만 1을 취하면 (01000000 = 64) 입니다.

0과 연산하면 무조건 0으로 반환합니다.

 

< OR(|) 연산 >

102 | 162는 아래와 같습니다.

 

"❘" 연산자 사용하기

 

다시 102(01100110)과 227(10100010)을 이진수로 변환합니다.

OR은 둘 중 하나라도 1인 위치에서는 1을 반환합니다.

하나라도 1이 있으면 무조건 1입니다.

이 경우에는 (11100110 = 230)이 됩니다.

 

< XOR(^) 연산 >

78 ^ 170는 아래와 같습니다.

연산자 ^ 지수함수에서는 사용하는 승 표시와 같음으로 사용할 때 주의해야 합니다.

 

"^" 연산자 사용하기

 

이번에도 78(01001110)과 170(10101010)으로 변환합니다.

XOR은 하나가 1, 하나가 0이면 1을 반환합니다.

나머지는0으로 처리됨으로 (11100100 = 228)이 됩니다.

 

 

2. 이진연산을 수행하는 함수

 

엑셀에서 이진연산을 수행하는 함수는 bitAND, bitOR, bitXOR입니다.

함수의 기능과 사용은 간단합니다.

 

  • bitAND (number1, number2, ...) : 이진연산 AND를 수행합니다.
  • bitOR (number1, number2, ...) : 이진연산 OR를 수행합니다.
  • bitXOR (number1, number2, ...) : 이진연산 XOR를 수행합니다.

인수인 number의 숫자는 10진수를 사용해야 하고 10진수로 반환합니다.

228-1까지 수행할 수 있고, 정수만 사용가능합니다.

 

 

3. 이진연산의 사용하는 예시

 

컴퓨터는 이진연산을 이용하면 빠르고 에러가 거의 없이 사용됩니다.

다양한 분야에서 사용되는데 예를 들어 0과 만나면 0을 반환하는 AND연산자를 통하면 마스크로 쓸 수 있습니다.

 

원래 사용할 숫자 : 11010101

마스크 (M)           : 11110000

 

이렇게 하면 숫자 & 마스크(M)을 사용하면 오른쪽 4자리 수만 사용할 수 있습니다.(1101)

왼쪽 4개는 무조건 0으로 버려지게 됩니다.

대량의 정규화된 데이터베이스 중에서 추출할 자리 수에만 1이 있는 마스크를 만들면 언제든지 뽑을 수 있습니다.

 

 

반응형
728x90

사회나 자연현상으로부터 수집하는 데이터의 분포를 파악하여 산포도로 정리하고는 합니다.

많은 수의 데이터를 파악하는데 도움이 되는 도수분포표(히스토그램 - Histogram)은 아래와 같은 모양으로 그려집니다.

주로 가로층은 계급(Level 혹은 숫자의 범위)와 세로축은 그 수량으로 파악합니다.

 

도수분포표

 

이런 히스토그램은 거의 주로 정규분포를 띌 때가 많습니다.

그래서 정규분포 곡선을 그려서 산포와 비교합니다.

대표적인 예로는 우리 공정산포를 보는 미니탭(Minitap)에서 찾을 수 있습니다.

미니탭에서는 공정산포를 표시할 때 히스토그램 그래프에서 해당 산포가 가지고 있는 정규분포를 함께 표현합니다.

오늘은 엑셀로 어떻게 방법을 사용하는지 알아보겠습니다.

 

 

< 선행해야할 것 >

 

오늘 사용법을 알려드리기는 할 것이지만, FREQUENCY와 NORM.DIST 함수를 사용할 예정입니다.

함수 자체에 포스팅을 한 적도 있으니 링크 참고하세요.

EXCEL 데이터를 히스토그램을 만드는 FREQUENCY 함수와 통계 차트 삽입기능

정규분포의 확률을 알려주는 NORM.DIST 함수는 무엇이고 사용하는 예시

 

 

< 차트 그리기 >

 

① 사용할 데이터를 정리합니다.

 

사용할 데이터를 정렬합니다.

AVERAGE 함수를 사용해서 평균STDEV.S 함수를 통해서 표본집단의 표준편차를 구해둡니다.

오늘 사용할 데이터는 야구 2024년 정규시즌 40 경기 이상 출전선수의 평균 안타수로 하겠습니다.

오늘의 데이터

 

 

② 도수분포표의 계급을 정합니다.

 

계급을 결정하는 방법은 여러가지가 있으나 표준적인 방법이나 대세적으로 많이 쓰는 방법은 없습니다.

꼭 이거다 하는 방법이 없음으로 이번에는 임의로 10개 간격으로 15칸으로 설정해 보겠습니다.

 

계급 정하기

 

 

③ Frequency 함수를 사용합니다.

 

Frequency 함수는 배열 함수로 사용해야 합니다.

오피스 365 이상에서는 그냥 배열함수로 사용이 되지만, 그 이전 버전에서는

Ctrl + Shift + Enter를 눌러줘야 합니다.

레벨을 bins array로 사용해야하며 DATA array는 원본 데이터를 사용합니다.

 

Frequency 함수 사용하기

 

 

④ NORM.dist 함수를 사용합니다.

 

NORM.dist는 배열함수가 아닙니다. 평범하게 사용하면 됩니다.

NORM.dist(x, 평균, 표준편차, 옵션) : 범위의 시작값을 x로 하고 평균과 표준편차는 구해두었습니다.

옵션은 False : 확률밀도함수로 입력합니다.

모든 범위(계급)에 대해서 NORM.dist를 구해서 정렬하겠습니다.

 

함수 사용하기

 

 

⑤ 그래프를 그립니다.

 

수량은 막대그래프로 정규곡선은 꺽은선 그래프로 그립니다.

그리고는 어느정도 꾸미면 아래처럼 그려집니다.

 

그래프 그리기

 


 

아래 그래프는 동일한 데이터를 넣고 통계 프로그램인 Minitap에 넣고 계산한 결과입니다.

주변에 여러가지 계산값을 만들어주기는 하지만 그래프 모양 자체는 유사하게 그려지네요.

아마 디자인 감각을 살린다면 더 나은 그래프도 그릴 수 있을 껍니다.

 

 

반응형
728x90

곱셈연산에서는 1을 곱하면 그 숫자를 그대로 돌려줍니다.

이 때 1을 곱셈의 항등원이라고 하고 곱해서 1이 되게 만드는 값을 역원이라고 합니다.

실수에서는 역원은 역수가 됨으로 쉽게 구할 수 있습니다.

 

곱셈의 성질

 

하지만 행렬은 이 과정이 매우 복잡합니다.

행렬에서 곱셈을 컨트롤 하는 방법을 알아보겠습니다.

 

목차

1. 단위행렬(Unit Matrix)

2. 역행렬(inverse matrix)의 정의

3. 엑셀로 구하는 MUNIT 함수와 MINVERSE 함수

 

 

 

1. 단위행렬(Unit Matrix)

 

행렬의 곱셈의 항등원을 단위행렬이라고 합니다.

단위행렬은 흔히 I로 표기됩니다.

 

단위행렬

 

정사각행렬의 크기는 달라져도 모양은 모두 똑같습니다.

대각선 방향으로 1이 있고, 나머지는 모두 0입니다.

사이즈에 따라 무한히 커질 수 있습니다.

 

행렬의 크기에 따른 단위행렬

 

변환하거나 전환해도 계속 단위행렬로 남아 있습니다.

1로 정의되는 스칼라 값이 변할 수는 있지만 모양은 유지됩니다.

 

 

2. 역행렬(inverse matrix)의 정의

 

곱해서 단위행렬이 되는 행렬을 역행렬이라고 합니다.

역행렬이 존재하기 위해서는 정사각행렬이 여야 하고, 행렬식은 0이 아니여야 합니다.

행렬식이 0이 아닌 상태를 가역(invertible)이라고 합니다.

 

역행렬의 정의

 

< 2 x 2 행렬의 역행렬 >

 

2x2 행렬은 정사각 행렬 중 가장 작은만큼 구하기가 쉽습니다.

비교적 그렇다는 겁니다.

학생분들은 일단은 이걸 통채로 외워버리는 쪽이 빠릅니다.

 

역행렬

 

 

< 3 x 3 이상의 크기의 역행렬 >

 

3 x 3 이상일 때는 본격적으로 복잡해집니다.

행렬의 연산은 복잡도가 있고 다양한 알고리즘을 통해서 역행렬을 구할 수 있습니다.

그 중에 하나를 알아보도록 하겠습니다.

사전에 행렬식과 여인자(cofactor)를 계산하는 방법을 알아야 합니다.

이 것도 꽤 분량이 기니까 아래 포스팅에 링크를 올립니다.

여인자 전개를 통해 행렬식(determinant)을 구하는 방법 과 엑셀(EXCEL)에서 MDETERM 함수로 행렬식 계산하기

 

행렬식(=det)와 여인자(=Cij)를 알고 있다면 역행렬은 아래와 같이 적용할 수 있습니다.

adj는 여인자(=Cij) 행렬의 전치행렬입니다.

 

역행렬 구하기

 

간단해 보이지만 막상 계산하려면 엉? 하는 식이 나왔습니다.

이걸 풀어서 쓰면 굉장히 길어지는데요.

3 x 3 행렬에 대해서 풀어쓰면 아래와 같이 역행렬이 구해집니다.

 

역행렬 구하기

 

공부하는 분들은 규칙이 이해가 안되면 그냥 한번 따라가 보시면 됩니다.

하지만 그냥 일반인들은 식을 한번 본거에 만족하고 넘어가도 됩니다.

왜냐면 지금은 다양한 수학 툴이 알고리즘으로 제공하기 때문입니다.

 

 

3. 엑셀로 구하는 MUNIT 함수와 MINVERSE 함수

 

가장 대중적인 프로그램 중 하는 엑셀입니다.

엑셀에서 복잡한 행렬연산을 실행하는 함수를 제공합니다.

 

MUNIT(dimension) : 단위행렬을 만들어줍니다.

  • dimension : 단위행렬의 크기(차원)입니다. 1 이상의 정수를 입력해야 합니다.
  • 오피스 365 이상의 버전은 배열의 수만큼의 칸에 자동으로 입력하지만 그 이전 버전은 입력해야 합니다.

MUNIT 함수

 

사용이 간단한 함수입니다.

 

 

MINVERSE(array) : 함수의 역함수를 구합니다.

  • array : 함수의 범위입니다. 행렬로 해석될 수 있는 배열로 입력되어야 합니다.
  • 같은 셀 범위 혹은 {1,2,3;4,5,6;7,8,9}와 같은 배열 상수를 입력할 수 있습니다.
  • 범위내의 셀이 비어있거나 텍스트로 입력되면 #VALUE 에러를 반환합니다.
  • 범위를 입력 받아서 범위를 출력하는 함수입니다.
    역시 오피스 365 이상에서는 자동으로 배열을 반환하지만 그이전에는 범위를 선택해야 합니다.

함수 사용법

 

조금 사용이 어렵기는 하지만 복잡한 계산이 이렇게 편해집니다.

 

반응형
728x90
목차

1. 행렬식(determinant)

2. 소행렬(Minor matrix)로 쪼개기

3. 여인자(cofactor)와 행렬식

4. 엑셀 함수 MDETERM 로 계산하기

 

 

수학에서는 여러 개의 차원이나 대상, 숫자가 규칙성 있게 정렬되고 연산되기 위해 행렬을 사용합니다.

행렬은 숫자들이 직사각형 모양으로 나열된 상태를 말하고 가로-행와 새로-열로 구성되어 있습니다. 

 

일반적인 행렬

 

 

1. 행렬식(determinant)

 

행렬식은 행과 열의 수가 같은 정사각 행렬의 경우에만 적용이됩니다.

행렬식(determinant)는 정사각 행렬의 특성을 보여주는 숫자로 다양한 연산에 사용됩니다.

연립방정식에서 수들의 성질을 보여주는 수로 determinant( : 결정하다)의 의미를 가지는 행렬식이 만들어졌습니다.

 

기본적인 행렬식 det

 

행렬식의 값이 0이면 해당 배열의 역행렬을 만들 수 없으며, 연립방적식의 해도 구할 수 없습니다.

역사적으로는 행렬식이 행렬보다 더 빨리 만들어졌다고 하네요.

2 x 2 행렬의 행렬식은 아래와 같이 정의됩니다.

 

행렬식

 

문제는 이거보다 긴 행렬의 행렬식을 표현할 때입니다.

정말 다양한 방법으로 행렬식이 계산되지만 오늘은 여인자 전개(cofactor expansion)를 알아보겠습니다.

 

 

2. 소행렬(Minor matrix)로 쪼개기

 

먼저 부분행렬 혹은 소행렬이라고 불리는 행렬 쪼개기를 해야합니다.

정사각 행렬은 또 다른 정사각행렬로 쪼개질 수 있습니다.

아래 3 x 3 행렬의 부분 행렬 m11은 아래와 같이 나타낼 수 있습니다.

 

단위행렬

 

그럼 이번에는 설명을 쉽게 하기 위해 용어을 통일하겠습니다.

1행 부분행렬은 1행을 제외하는 3개의 행렬을 이야기 합니다.

1행 부분행렬 m11, m12, m13은 아래와 같습니다.

제외되는 값의 중심을 부분행렬의 원소로 삼습니다.

 

1행 부분행렬

 

그리고 2행 부분행렬, 3행 부분행렬도 이렇게 정리할 수 있습니다.

 

< 2행 부분행렬 >

m21, m22, m23

2행 부분행렬

 

< 3행 부분행렬 >

m31, m32, m33

3행 부분행렬

 

 

3. 여인자(cofactor)와 행렬식

 

여인자는 부분행렬의 행렬식의 값에 행렬에 따라서 -1를 곱한 값입니다.

여인자

 

한행에 대한 여인자를 각각의 원소와 곱해서 모두 더하는 것을 여인자 전개(cofactor expansion)라고 합니다.

이 여인자 전개 값이 바로 행렬식 값이 됩니다.

 

여인자 전개

 

Σ도 들어가고 바로 알기 어려우니 예로 하나의 행렬식에 대해서 직접 계산을 해보겠습니다.

아래 행렬 A에 대한 행렬식의 값은 -7로 계산됩니다.

 

행렬식 계산하기

 

 

4. 엑셀 함수 MDETERM 로 계산하기

 

사람의 손으로 하기 어려운 계산이라는 것은 짐작하실 껍니다.

3 x 3 행렬까지라면 모르겠지만 4 x 4 행렬은 3 x 3의 부분행렬으로 나누고, 

다시 그 3 x 3의 행렬식을 구해야 하니 복잡도가 엄청나게 올라 갑니다.

 

하지만 다행히도 이런 계산은 컴퓨터에게는 오히려 쉽습니다.

엑셀에서도 MDETERM 함수를 제공합니다.

 

MDETERM(Array) : 행렬의 행렬식을 구합니다.

  • 행렬은 정사각행렬이여야 하며 문자나 빈칸을 포함하면 안됩니다.
  • 엑셀의 정밀도는 소수점 16자리로 많은 계산이 반복되면서 발생하는 에러가 있을 수 있습니다.
  • 정말 큰 행렬에 대해서는 전문 수학 Tool을 사용하거나 직접 코딩하는 쪽을 권장합니다.

 

< 함수 사용하기 >

사용예

 

함수를 사용하는 것은 쉽고 빠릅니다.

6 x 6의 행렬도 아주 빠르게 행렬식을 계산해 줍니다.

 

 

 

반응형
728x90

십의 자리를 기준으로 숫자를 올리거나 내려주는 Round 함수가 있습니다.

하지만 항상 십의 단위로 물건을 묶는건 아닙니다.

시간은 60분이나 연필은 한다스 12개등이 대표적이지만 제품 포장에서는 7이나 27등 다양한 단위를 사용합니다.

 

제품 포장 사양서

 

이 때 사용하는 CEILING.MATH 함수를 소개합니다.

 

CEILING.MATH(number, [significance], [mode]) : 숫자를 다양한 단위 정수로 반올림합니다.

  • number : 올림하고 싶은 원본숫자입니다.
  • [significance] : 올림할 때 사용하는 배수입니다. 기본 값은 1 혹은 -1입니다.
  • [mode] : 음수를 올림할 때 사용합니다. 기본 값이 0은 큰 쪽으로 올려서 0에 가까운 수가 되고, 1을 입력하면 작은 방향으로 올리고 절대값이 커지는 결과가 반환됩니다.

 

먼저 함수를 사용해 보겠습니다.

보이는데로  원하는 것처럼 숫자를 만들어줍니다.

함수 사용 예시

 

이 함수는 꽤 쓸모가 많습니다.

예를 들면

 

  • 예산을 계획시에 항목이 많을 경우 사용합니다.
    여러 항목이 소수점 단위로 짤라지는 10원단위 절삭을 할 때 씁니다.
    1원 단위로 거래가 어렵기 때문에 낭비가 발생하기 쉽고, 물건을 수만 혹은 수십만 취급해야 하는 큰 기업 등에서는 절삭을 안하면 예산이 부족한 사태가 발생할 수 있습니다.
  • 물건을 주문할 단위로 포장되는 경우 사용합니다.
    한박스에 17개 들어간다든지 하는 경우인데, 정책적으로 그 단위가 아니면 안팔기도하고 무엇보다 그렇게 맞추는게 서로 가장 저렴할 때가 많습니다.
    좀 남아도 짧은 시간에 다시 사용할 예정이라면 구매를 할 때 판매처의 단위로 맞추는데 사용합니다.
  • 시간관리를 할때도 사용합니다.
    인력의 시간을 작업을 (A + B + C)를 했을때 3.5 + 2.8 + 1.7로 하면 그냥 더하면 8시간에 하루면 될 것 같지만, 현실에는 각 작업의 전환시간이나 화장실 등 비효율적인 시간을 있어서 이걸 8시간으로 계획을 잡으면 리스크가 생깁니다.
    공장에서야 이런 시간까지 다 계획에 넣으려고 하는 시도가 있지만 영업업무나 이사짐 센터등 일이 다양하게 변하는 경우 일일히 다 계산할 수 없습니다.
    이걸 감안하기 위해 30분 단위라든가 등으로 쪼개서 계산하면 생산계획이 망가지는 사태를 막을 수 있습니다.
  • 데이터 페키지로 사용할 때 사용합니다.
    데이터 페키지 계산할 때 데이터의 수량은 8이나 16, 256 식으로 명확하게 쪼개지는데 한 개 작업에서 사용하고 나면 다음 작업에서는 다음 페키지를 사용해야함으로 올림 계산이 필요합니다.

저도 쓰다보니 생각보다 많은 이 사용을 하네요.

그것 말고도 고려할 수 있는 경우는 많이 있습니다.

이렇게 다양한 분야에서 사용하는 함수인만큼 알아두시면 좋을 것 같습니다.

반응형
728x90

혹시 전입신고 등 통보서비스에 대해서 모른다면 이 포스팅을 꼭 읽어 주시기 바랍니다.

아니면 그냥 "전입신고 등 통보서비스"에 가입하세요.

 

요즘 너무 무서워진 전세사기 수법중 가장 악날한 것에 하나입니다.

전세계약을 먼저 체결하고 그 때 얻은 신분증 사본이나 개인정보를 이용하여 본인 척 주소지를 변경합니다.

이렇게되면 집이 빈 것으로 처리가 됨으로 집주인은 추가 전세를 받거나 대출을 받고 도망가는 식입니다.

이 때 나도 모르게 대항력을 상실함으로 보험 같은 방어책이 하나도 통하지 않게 됩니다.

 

사고사례

 

기사를 보면 24년 상반기에 여러가지 대책이 나온다고하지만 문서위조등 강력한 수법의 범죄에는

여전히 속수무책으로 보입니다.

그래서 우리가 할 수 있는 가장 기본적인 방법을 소개합니다.

 

전입신고 문자 서비스가 바로 "전입신고 등 통보서비스"입니다.

전입신고가 되면 문자가 날아가 미리 알게 하는데 사기를 완전히 방어하지는 못해도,

최소한 내가 알고 대응할 시간적 여유를 주게 됩니다.

 

하는 방법을 소개시켜 드리겠습니다. 로그인을 하거나 본인 인증 절차는 생략합니다.

혹시 어려우신 분들은 가까운 주민센터에 신분증을 들고 방문하셔서 신청하도록 하세요.

 

 

① 정부 24 홈페이지에 접속한다.

 

홈페이지만 들어가면 사실 알아서 할 수 있을꺼라 생각합니다.

그래도 기본적으로 제가 한 방법은 아래에 써두었으니 참고하세요.

 

https://www.gov.kr/portal/main/nologin

정부 24

 

 

② 민원서비스에서 검색합니다.

 

상단의 민원서비스 - 민원 신청 안내에 들어갑니다.

여기서 "전입신고 등 통보서비스"를 검색합니다.

 

민원신청에서 검색하기

 

③ 개인정보를 넣고 신청합니다.

 

주소지등 개인정보를 넣고 신청합니다.

신청 서비스를 모두다 신청했습니다.

제 개인주소와 신청대상건물도 신청했습니다.

 

신청하기

 

④ 구비서류를 보냅니다.

 

저는 주소지가 있는 주민등록등본을 추가했습니다.

주민등록등본은 따로 정부 24에서 뽑을 수 있습니다.

이런건 정부기관 지들이 조회해도 될껀데 꼭 우리 시키는게 답답하기는 하네요.

 

구비서류 보내기

 

⑤ 신청된거 확인하기

 

제 실수인지 전산오류인지는 모르겠지만 처음에 신고가 안되었더라고요.

서비스 신청내역에서 신청한 날짜와 내용을 볼 수 있습니다.

그리고 카톡으로도 날아 왔으니 이번에는 신청이 된 것이라고 생각하겠습니다.

 

서비스 신청내용

 

제가 아직 이사를 안가서 이 문자를 받을 일이 없습니다.

혹시 주소지를 옮긴다면 서비스가 잘 작동하는지 확인하고 싶네요.

다음날 문자로 서비스 처리 통보도 오네요. 우리나라 공무원들 일 잘합니다.

 

문지로 통보도 옵니다.

 


 

사람마다 사정은 다르겠지만, 보통은 성인이 되고 직장을 가지고 벌이가 생기거나 결혼을 하면 독립을 하게됩니다.

20대 56.8%, 30대 46.8%가 전, 월세에 산다고 합니다.

참 세상이 야속하게도 사회를 시작하는 사람들에게 피해를 많이주는 전세사기가 점점 늘고 있습니다.

세상만 탓할 수는 없는 노릇이고 없는 자본에 어떻게든 살아야하니, 자신을 방어하기 위한 수단을 만들어야합니다.

이 "전입신고 통보서비스" 아직 홍보가 많이 안된 서비스라고 합니다.

보다 잘 알려져야 하니 여러분 한명한명이 가입하고 실적이 늘어나면 정부도 홍보를 늘릴 것이라고 생각합니다.

꼭 자신이 해당하지 않아도 가입하고 주변의 전세사는 사람에게 이런 서비스가 있다는 것을 알려주도록 합시다.

 

반응형
728x90

원과 타원

원과 타원의 정의는 각각 아래와 같습니다.

 

원(circle)은 평면상의 한 점에서 일정한 거리에 있는 평면상의 점으로 이루어지는 곡선
타원(ellipse)은 두 정점으로부터 거리의 합이 일정한 점들로 이루어진 곡선
(출처 : 다음 백과사전)

 

뭐든 수학적인 정의로 말하면 어려워지는 것 같습니다.

그래도 원과 타원은 눈으로 보면 명확하게 다릅니다.

하지만 어떻게 디자인 하나를 생각하면 꽤 복잡해집니다.

오늘은 얼마나 타원이냐를 따져보는 타원율(Ellipticity)에 대해서 알아보겠습니다.

 

 

1. 이심률 (Eccentricity)

 

이심률은 타원이 얼마나 찌그러졌는지를 나타내는 값입니다. 

타원의 장축(semi-major axis)과 단축(semi-minor axis)을 사용하여 이심률을 계산할 수 있습니다.

장축의 길이가 a, 단축의 경우 b라고 표시할 때 타원의 이심률 e는 아래와 같습니다.

 

이심률(e)의 정의

 

  • e=0일 때는 원(circle)입니다.
  • 타원은 e가 0에서 1 사이입니다.
  • e=1에 가까워질수록 타원은 더 납짝한 모양이 됩니다.

 

이심률에 따른 타원의 모양은 아래와 같습니다.

 

이심률에 따른 모양

 

 

 

2. 타원 평면도 (Flatness) - 타원률

 

타원에 평평함을 나타내는 또 다른 계산지표입니다.

이심률보다 개념이나 계산이 간편하여 여러분야에 응용할 수 있습니다.

이 경우도 타원의 장축 a와 단축 b를 사용해서 계산을 합니다.

 

이때 평편도 f는 아래와 같습니다.

 

평면도 f

 

 

평면도에 대한 모양

 

 

 

3. 사용하기 - 필터

 

타원율이 생각보다 많은 분야에서 사용되는데, 그 중 하나가 신호체계에서 필터입니다.

필터는 여러가지 조건에 따라 신호를 걸러주는 역할을 하는 경우가 많습니다.

이번에는 90˚ 방향에서 들어오는 신호는 차단해주고 0˚ 방향에서 입사하는 신호는 받아들이는 필터를 생각해 보겠습니다.

이 필터가 만들어내는 모양은 기본적으로 아래와 같습니다.

 

이상적인 필터는 타원율이 1.0

 

0˚ 로 입사되는 신호는 100% 들어오지만 90˚ 방향은 0%로 이상적으로 구현되었습니다.

이때 0˚ 방향을 장축 a이고 90˚ 방향은 단축 b 으로 해서 타원 평면도를 계산합니다.

이 때 평면도 f = 1이 되고 이 경우 성능이 우수하다고 합니다.

하지만 현실에서는 필터가 완벽하게 작동하지 않습니다.

 

현실에서 필터(타원율 0.8)

 

90˚ 방향의 성분이 다 차단되지 않아서 어느정도 남아 있는 것이 보입니다.

이 때 평면도를 계산하면 f = 0.8으로 필터의 성능을 나타내 줍니다.

반응형
728x90

엑셀을 하다보면 보여지는 문자는 "서식정보"와 "내용"이 합쳐집니다.

즉 생긴거는 문자이지만 숫자일 수도 있고, 숫자 10이 "10권"으로 표시될 수도 있다는 뜻입니다.

특히 통계 프로그램을 통해 생성된 숫자나 외부파일을 복사해서 붙이는 경우 문자로 많이 붙여넣어집니다.

 

이런경우에 문자를 숫자로 고쳐주는 NUMBERVALUE 함수에 대해서 알아보겠습니다.

 

 

NUMBERVALUE(text, [decimal_separator], [group_separator]) : 텍스트를 원하는 형식에 숫자로 변환합니다.

  • text : 숫자로 표시될 문자입니다. 함수가 숫자로 해석할 수 없는 경우 #VALUE! 에러를 반환합니다.
  • [decimal_separator] : 소숫점을 확인합니다. text안에서 decimal_separator를 찾아서 똑같은게 있다면 그 오른쪽에 있는 숫자는 소수점 이하로 표시합니다. 같은 decimal_separator가 2개 이상이면 오류(#VALUE!)가 발생합니다.
  • [group_separator] : 구분표시입니다. text안에서 group_separator 를 찾아서 똑같은게 있다면 무시합니다.
  • 빈칸은 자동으로 무시합니다. 3 0 0 0은 3000으로 자동으로 변환됩니다.

 

인수에 대한 설명이 어렵습니다.

하지만 동작이 쉬운 함수로 예를 들어서 보면 명확합니다.

 

=NUMBERVALUE("1서43장55","장","서") 라고 하면 결과는 "143.55"가 됩니다.

"서"는 뭔가 구분기호로 생각해서 없애버리고 "장"은 소수점으로 빼버린 겁니다.

 

예시

 

문자로 표기되어 있고 중간에 공백이 있어서 연산이 안되는 왼쪽에 비해,

NUMBERVALUE로 변환한 식은 계산이 바로됩니다.

 


 

요즘은 사실 엑셀에서 어지간한 텍스트 형식의 숫자는 연산이 바로 지원되게 만들어져 있습니다.

텍스트 형식으로 '34 + '55을 하면 그냥 89라고 결과가 뜹니다.

스마트하게 만들어지는 추세죠.

언제가 NUMBERVALUE 함수는 장기적으로 없어지는 과거의 유물이 될 수도 있겠네요.

하지만 숫자가 텍스트가 되어서 문제가 생기는 경우는 언제든지 있습니다.

 

오른쪽 관중수가 텍스트입니다.

 

텍스트로 표시된 숫자는 거의 대부분 칸의 왼쪽 위에 초록색 삼각형이 있어 알 수 있습니다.

하지만 이것도 예외는 언제든지 있어서 혼돈될 때가 있습니다.

외부 프로그램으로 CSV 파일을 만들거나, 혹은 복사해서 붙일 때는 텍스트로 적용되었는지 아닌지를 확인할 필요가 있습니다.

반응형
728x90

https://youtu.be/Ymi_LMQ8N_Y

소개영상

 

작은 마녀 노베타는 대만의 Pupuya Games에서 제작한 3D 슈팅 액션 게임니다.

게임사는 대만이지만 일본을 타겟으로 제작한 느낌이 많이 납니다.

언어가 일어로 되어있고 부록도 일본어로 제작되어 플레이할 때는 일본게임이라고 생각했습니다.

3D 기반의 움직임을 가진 주인공 노베타가 맵을 이동하거나 전투하면서 진행하는 방식입니다.

 

노베타

 

밝은 색상의 배경에 귀여운 여자아이와 고양이가 등장하여 라이트한 분위기로 시작됩니다.

하지만 스테미너와 마력을 관리하면서 전투를 해야하는 조금은 난이도가 있는 게임입니다.

이런 스타일을 소울라이크라고 묶어 말하기도 하지만 전통적인 소울 계열과 비교하면 차이가 많습니다.

영창을 사용한 독창적인 전투스타일은 차별화된 전술로 보스전으로 진행하게 합니다.

 

원거리 공격

 

마녀인 노베타는 원거리 슈팅 공격을 주력으로 가지고 있습니다.

영창을 통해 강력한 마법을 사용할 수 있고 속성마다 개성이 있어 마법사라는 직업에 어울립니다.

원거리 공격은 마력을 소모하여 마력을 부족할 때가 많습니다.

근접공격이나 부서지는 오브젝트를 파괴하면 회복할 수 있습니다.

정확한 타이밍에 공격을 하면 마력흡수 마법이 발동합니다. 

소울 시리즈에 페링에 해당하는 기술로 대량의 마력과 약간의 체력을 회복하는데,

보상이 좋기는 하지만 사용하기가 어렵습니다.

또 정확한 타이밍에 회피를 하면 약간의 마력이 충전되는데 이쪽이 좀더 쉬워서 주력으로 사용했습니다.

 

노베타의 옥좌

 

어려보이는 외모에도 강력한 마법을 구사하는 노베타가 한 성을 방문합니다.
성은 지형이 복잡하며 귀신이나 인형들이 덤벼오고, 곳곳에 강력한 생혼들도 버티고 있습니다.

여기서 옥좌라는 것을 찾는 노베타가 말도 하고 길을 알고 있는 고양이를 만나 성을 탐험하는 이야기입니다.

주인공의 상황과 사정이 스토리가 진행되도 완전히 밝혀지지는 않습니다.

하지만 수집품을 통해서 어느정도 예상이 가능하고 상상하는 재미가 있는 게임입니다.

 

여신상

 

 

기본적으로 전투로 모은 생혼을 여신상에 가져가서 스텟을 강화할 수 있습니다.

기술에 해당하는 마법은 숨겨진 마법책을 찾아서 레벨을 올려 강해지는 방식입니다. 

1회차에도 마법을 만랩까지 올릴 수는 있지만 잘 뒤지고 다니지 않으면 다 찾기는 어렵습니다.

영창이 완료되면 주문 대기상태가 되는데 대기 상태 중에는,

특수효과가 있고 한번에 강력한 마법을 사용하면 영창상태가 끝납니다.

전투전에 미리 영창을 해두면 전투난이도가 쉬워지기 때문에 2회차가 더 쉬울 수도 있습니다.

 

풍경

 

그래픽이나 풍경이 시원하게 묘사되고 깨짐등 어색함이 없고 오브젝트 표현이 잘 되어있습니다.

케릭터의 동작이나 전투에서도 적들과 충돌현상이 없어 플레이에 재미를 올립니다.

하지만 BGM이 좀 심심합니다. 단조롭고 반복적이라 전투가 없는 구간에서는 심심합니다.

 

마법 사용하기

 

중간 보스급 이상은 지형과 기술의 특성을 살려 재미있게 하지만 일반적들은 단조롭고 마법한방에 쓰러집니다.

또 진행에서 부자연스러운 것들이 조금 있는데 특히 어두운 동굴 스테이지에서는 생각없이 진행하면 번개마법을 놓칠 수도 있습니다.

진행에 꼭 필요한 마법이라 공략을 보지 않으면 왜 게임이 막히는지 전혀 알 수가 없게 되는 상황이 되는 것이죠.

다섯 번째 정신세계로 들어가면 뒤로 못돌아가는데 세계관상 이해는 되지만 게임 내부적으로 허용해 주었으면 하는 바램이 있습니다.

 

번개마법은 강력합니다

 

인디게임다운 허술함이 있기는 하는 게임입니다.

하지만 웃고 넘어갈 수준이고 보스전이 재미있기도 해서 돈이나 시간이 아깝지는 않습니다.

여신상에서 세이브를 하면 적들이 다시 살아나는 특성을 이용해서 생혼을 모아 강화 할 수 있습니다.

다양한 요소가 많아서 조금 노력하면 생각보다 어렵지 않게 플레이 할 수 있습니다.

강하게 추천하지는 않겠지만 액션게임을 좋아하시면 재미있게 할 수 있습니다.

반응형
728x90
목차

1. FORECAST.ETS.CONFINT 함수

2. 함수 사용 예시

 

현실에서 사용하는 데이터들은 불연속적으로 보이고 패턴이 없어 보입니다.

이런 데이터를 분석하기 위해 몇가지 방법을 사용하는데,

 

  • 이동평균법 : 과거 데이터의 평균을 이용해서 데이터를 분석하기 쉽게 만들기
  • 지수평활법 : 수준(Level), 추세(Trend), 계절성(Seasonality)로 미래정보를 예상
  • ETS 모델 : 지수평활법에 Error를 추가하여 불확실성을 최소화

 

같은 방법이 있습니다.

 

엑셀에서는 FORECAST.ETS 함수로 이 ETS 예측 솔루션을 제공합니다.

그래도 미래예측이 다 그렇지만, 많은 불확실성을 가지고 있습니다.

불확실성을 계산하는 파생 함수인 CONFINT 함수를 알아보겠습니다.

 

1. FORECAST.ETS.CONFINT 함수

 

FORECAST.ETS.CONFINT(target_date, values, timeline, [confidence_level], [seasonality], [data_completion], [aggregation]) :ETS 함수로 계산한 날짜의 예측한 값에 대한 신뢰구간을 반환합니다. 예측된 결과 95%에 반경에 속할 것이라는 것을 계산할 수 있습니다. 반대로 말하면 이 반경이 좁을 수록 ETS로 예상한 값이 정확도가 높다고 할 수 있습니다.

 

  • target_date : 예측하려는 시점의 숫자입니다. 날짜 혹은 시간, 숫자일 수 있습니다.
    원본데이터의 시간인 timeline에서 몇 단계 멀어져 있는지 계산해서 수행합니다.
    이 시간이 timeline 안쪽인 경우에는 #NUM!의 에러를 출력합니다.
  • values : 측정한 과거의 값들입니다. 범위로 입력해야하고 정확하고 많은 데이터가 필요합니다.
  • timeline : 측정한 값들의 시간 데이터입니다. 일정한 간격의 값으로 구성되어야 하지만 꼭 정렬될 필요는 없습니다.
    함수가 자동으로 시간순으로 정렬하며 줍니다.
    여기에 계산이 불가능한 텍스트등이 포함되면 #NUM을 출력됩니다. values와 같은 개수여야 합니다.
  • [confidence_level] : 구간의 신뢰도 수준을 나타내는 값으로 0 ~ 1 사이의 숫자입니다. 입력하지 않는 기본값은 0.95입니다.
  • [seasonality] : 계절성을 입력하는 항목으로 선택 요소입니다.
    1은 기본값으로 엑셀 함수가 자동으로 계절성을 계산하게 합니다.
    0은 계절성이 없는 모델을 사용하여 계산하는 선형모델을 사용합니다.
    양의 정수를 입력하면 사용자가 입력한 seasonality를 사용해서 계산합니다.
    그 외의 모든 값에 #NUM 오류가 반환됩니다. 지원되는 최대 seasonality는 8,760(1년 동안의 시간)입니다.
    해당 숫자보다 seasonality가 높으면 #NUM! 오류가 반환됩니다.
  • [data_completion] : 계측된 데이터에 빈값을 어떻게 할지 결정하는 선택요소입니다. 이 함수에서는 최대 30%의 누락지점을 매꾸는 알고리즘이 지원됩니다.
    1 : 기본값으로 가까운 지점의 평균을 사용해서 누락된 DATA를 계산합니다.
    0 : 누락된 지점을 0으로 간주하는 알고리즘입니다.
  • [aggregation] : timelie 요소간에 일정한 단계가 필요한데 중복되는 타임 스탬프가 있을 수 있습니다. aggregation은 이 값들을 어떻게 처리할지 결정합니다.
    1 : 기본값으로 그 값들을 AVERAGE를 계산합니다.
    2 : SUM으로 계산합니다.
    3 : Count로 계산합니다.
    4 : CountA로 계산합니다.
    5 : 최소값(Min)으로 계산합니다.
    6 : 최대값(Max)으로 계산합니다.
    7 : 중위값(Median)으로 계산합니다.

 

 

2. 함수 사용 예시

 

함수는 범위를 반환하기 때문에 ETS로 구한값을 더하거나 빼면 됩니다.

EST ± CONFINT를 적용하면 해당 신뢰구간을 구할 수 있습니다.

과거 실측기온을 대상으로  ETS를 이용해서 내년 기온을 예상해 봤습니다.

 

기온을 가지고 ETS

 

일단 보이지는 않지만 1960년부터 지금까지 서울의 월평균 기온을 구한것입니다.

예상값 선에서 CONFINT로 구한 값이 위아래로 범위를 만들고 있습니다.

95% 신뢰구간임에도 이 범위는 ± 3 ℃ 가까운 굉장히 큰 것으로 기후 예상이 어렵다는 것을 알 수 있습니다.

 

기온값과 예상값

 

내년에 진짜 이대로 가는지 보는 것도 좋을 것 같습니다.

ETS함수로 먼미래까지도 계산할 수 있습니다.

예상하는 미래를 좀더 멀리해서 2030년까지 보겠습니다.

시간에 따른 오차가 점점 커지는 것을 볼 수 있습니다.

먼 미래가 예상하기 힘든 점이 반영되는 것입니다.

 

좀더 먼 예상

 

그리고 아주 약간이지만 중심치가 +로 가는 것이 있습니다.

그건 아무래도 지구 온도가 올라가는 것이 반영된 것 같습니다.

ETS 계산법은 기온을 예상하기 위한 수많은 데이터가 없이 통계적으로도 어느정도 예상할 수 있는 장점이 있습니다.

 

그냥 봐서는 이해가 어려울 수 있으니 예시 파일을 올립니다.

여기에는 Microsoft사의 Learn 홈페이지에 가져온 내용도 포함됩니다.

 

ETS 예시.xlsx
0.08MB

 


 

< 지수평활법과 ETS 관련 포스팅 >

 

01. 시계열 분석에서 미래를 예측하는 이동평균법(SMA), 지수평활법(ES)으로 미래값을 예상하고 풀어보기

02. 지수평활법으로 데이터를 분석할 때 계절성과 주기를 파악하는 방법(Exponential Smoothing의 Seasonality)

03. 시계열 예측에서 지수평활법의 기본 모델(Additive)과와 확장 형태인 감쇠 (Damped) 모델들의 정의

04. 시계열 예측에서 계절성에 따른 추세가 변하는 승법적 모델과(Multiplicative Model), 감쇠하는 승법적 모델(Damped Multiplicative Model)

05. 상황에 맞게 지수평활법과 ETS 모델(Exponential Triple Smoothing)을 사용해서 시계열 예측을 수행하기

06. 지수평활법에서는 사용하는 계수(α, β, γ)를 최소제곱법으로 구하는 방법(엑셀 VBA 구하기)

07. 엑셀(EXCEL)로 지수평활법의 ETS 모델을 사용하는 FORECAST.ETS 함수와 파생함수인 SEASONALITY / STAT 함수

08. 엑셀(EXCEL)의 FORECAST.ETS 함수의 오차를 계산하는 CONFINT 함수(지수평활법을 사용하는 미래 예측 함수) - 현재글

 

 

반응형

+ Recent posts