O (·)는 함수가 아니므로 어떻게 함수와 같을 수 있습니까?


47

나는 큰 표기법의 의미를 완전히 이해 합니다. 내 문제는 우리가 라고 말할 때 , 여기서 은 크기 입력에 대한 알고리즘의 실행 시간입니다 .OT(n)=O(f(n))T(n)n

나는 그것의 의미를 이해합니다. 그러나 과 은 서로 다른 두 가지입니다.T(n)O(f(n))

T(n)O ( f ( n ) ) T ( n ) O ( f ( n ) ) O ( f ( n ) ) 은 정확한 숫자이지만 는 숫자를 내뿜는 함수가 아니므로 기술적으로같다고 말할 수 없습니다. 당신 은 의 가치 가 무엇입니까, 당신의 대답은 무엇입니까? 답이 없습니다.O(f(n))T(n) O(f(n))O(f(n))


7
간단히 말해, 의 = 기호는 "같음"을 의미하지 않습니다. 문제는이 가정에 근거합니다. 그렇게 말하는 출처를 찾았습니까? T(n)=O(f(n))
ShreevatsaR

20
이것은 단지 수학적 표기법 :( 학대하는 많은 방법 중 하나입니다
technical_difficulty

13
64가 숫자라면 어떻게 64가 될 수 있습니까?
TaW

7
Wikipedia는 항상 답을 찾기에 좋은 곳입니다. 여기에는 정확한 요점을 설명 하는 섹션 이 있습니다.
Dukeling

3
@mathreadler 알고리즘이 없습니다. big-O가 알고리즘에 대해 말하는 것은 소수가 누군가의 키에 대해 말하는 것이라고 생각하는 것과 같습니다. big-O는 수학 함수의 성장률에 대해 이야기하는 표기법입니다. 십진수는 숫자의 표기법입니다. 수학 함수는 일부 알고리즘의 실행 시간 일 수 있지만 반드시 그럴 필요는 없습니다. 그 숫자는 누군가의 키일 수 있지만 반드시 그런 것은 아닙니다.
David Richerby

답변:


107

엄밀히 말하면 은 일련 의 함수입니다. 따라서 의 값 은 단순히 보다 빠르게 증가하지 않는 모든 함수의 집합입니다 . 표기 기록 막에 종래의 방법이 .O(f(n))O ( F ( N ) ) F ( N ) T ( N ) = O ( F ( N ) ) T ( N ) O ( F ( N ) )O(f(n))f(n)T(n)=O(f(n))T(n)O(f(n))

이것은 또한 표기법 의 일부 경고를 명확하게 합니다. 예를 들어, 쓰지만 이라고 쓰지 마십시오 . Donald Knuth (컴퓨터 프로그래밍 기술, 1.2.11.1)를 인용하면 :O(1/2)n2+n=O(n2)O(n2)=(1/2)n2+n

가장 중요한 고려 사항은 단방향 평등에 대한 아이디어입니다 . [...]의 경우 와 포함 식이다 표기법 다음 표기법 함수 세트로 나타낸 것을 의미 은 표시되는 집합에 포함 됩니다 .α(n)β(n)Oα(n)=β(n)α(n)β ( N )β(n)


3
두 번째 단락을 이해하지 못합니다. 을 쓸 때 이라는 의미에 동의합니다 . 그러나 은 는 의미가 없습니다 (유형 오류입니다). 그렇다면 왜 이지만 두 번째 단락에서? F O ( F ( N ) ) O ( F ( N ) ) = O ( g ( N ) ) O ( F ( N ) ) O ( g ( N ) ) O ( n 2 ) O ( n 3 ) O (f=O(f(n))fO(f(n))O(f(n))=O(g(n))O(f(n))O(g(n))O(n2)O(n3)O(n3)O(n2)
Alex Vong

7
둘 다 설정되면 으로 해석되기 때문에O(n2)O(n3)
RiaD

1
실제로 필요한 곳에 단어를 사용합니다. 계산에서는 일반적으로 한쪽 면만 필요합니다
RiaD

11
나는 어떤 텍스트 나 다른 심각한 소스에서 O (n ^ 2) = O (n ^ 3)를 본 적이 없다. 당신은 하나를 인용 할 수 있습니까?
Yakk

1
더 엄격하게하려면 및 은 함수가 아니고 및 은됩니다. 그러나 "어떤 이유로"나는 사람들이 읽을 텍스트에 을 쓰는 것을 보지 못했습니다 . N (3) F , N N 3 N N 2O ( N N 3 )f(n)n3fnn3nn2O(nn3)
JiK

43

O 는 즉, 함수 받아들이고 (최대) 의 점근 적 경계를 공유하는 함수 세트를 생성합니다 . 엄밀히 말하면 올바른 표기법은 또는 짧은 이지만 수학, 과학 및 CS에서는 그냥 사용하는 것이 일반적입니다. 양쪽에 있는 인수 함수를 고려하고 있음을 나타내는 표현식 어딘가에있는 변수 . 따라서 도 꽤 좋습니다.

O:(NR)P(NR)fO(f)
ff
(nT(n))O(nf(n))
TO(f)
NT(N)O(F(N))T(N)=O(f(n))nT(n)O(f(n))T(n)=O(f(n))당신이 의심 한 것처럼, 꽤 잘못입니다. 그것은 매우 일반적으로 사용되므로 사람들이 이것을 작성할 때의 의미를 명심하십시오.

나는 작성하지 말 것을 권고 하지만 의견은 다릅니다 .T(n)=O(f(n))


11
OT(n)=O(f(n) 는 표기법의 표준 사용이므로 잘못되었다고 주장하는 것은 도움이되지 않습니다. (IMO는 가 함수 라고 주장 하지만 기술적으로는 사실이지만 실제로는 도움이되지 않습니다. 그것에 대해 생각합니다).O
데이비드 Richerby에게

38
@DavidRicherby 어떤 것이 완전히 표준이지만 그렇게해서는 안됩니다. 이 한 예입니다. 사람들이 이것에 의해 무엇을 의미하는지 아는 것은 여전히 좋은 일이지만 (OP가 이미 말했듯이)이 표기법이 기술적으로 가짜인지 확인하는 것이 어떻게 도움이되지 않습니까? 왜 것입니다 당신이 그것을 사용합니까? 짝수 경우 버전은 모호하지 않습니다, 어느 쪽도이다 하나, 그리고 더 많은 사람들이 더 나은 그 표기로 전환합니다. 작성하기가 더 어색하지 않은 한 실제로 수학적으로 의미가있는 것을 고수하는 것이 좋습니다. 은 완벽하게 읽고 쓸 수 있습니다. = T(n)=O(f(n))=
leftaroundabout

1
@leftaroundabout“쓰기가 더 어색한 경우가 아니라면”손가락을 대고 있습니다. — 작업 은 실제로 용어 가없는 특수한 경우를 제외하고는 쓰기가 훨씬 더 어색 합니다. LHS와 정확히 하나의 RHS. (예를 들어 , 내 대답 과 같은 무증상으로 작업하고 O () 표기법의 모든 이점을 포기하고 정당화되지 않은 가정에 의존해야한다는 대답과 비교하십시오. 표기법의 목적은 생각을 돕는 것입니다. 훨씬 더 "="의 의미 변화에 의해 여기 얻기 위해O ( )O()
ShreevatsaR을

2
@ShreevatsaR 어디로 가고 있는지 확실하지 않습니다. 나는 링크 된 게시물을 완전히 읽지 못했지만 TBH 귀하의 게시물은 가장 복잡하고 많은 (많은 모호한, "지금은 책에서 이것을 찾을 수 없습니다") 규칙 이 필요하지만 다른 답변은 첫 번째 원칙에서 해결책을 쉽게 제공하십시오. 어쨌든 "불량" 기호를 및 으로 바꾸는 것을 막는 것은 무엇 입니까? =
leftaroundabout

1
@ShreevatsaR 저는 규칙 / 이론을 세우는 것이 이론의 핵심이라는 데 동의합니다. 그러나 가장 중요한 것은 정확히 적용 할 때 각 규칙에 대해 명확하게 공식화하는 입니다. IMO 형식 이론은이를위한 최고의 프레임 워크이지만, 순진한 세트는 실제로는 충분히 가깝습니다. 그러나 / / 기호를 포함하는 대수적 표현의 순진한“방정식” 은 그렇지 않습니다. —“그들은 당신이 세트 이론의 형식주의”,“사명 달성!”,“인간의 생각과 맞지 않는…”을 생각하게합니다. – 그렇지 않습니까? 실제로 is-a-relationship에 대해 이야기하는 것이 유형 이론을 사용하는 것입니다. o ΘOoΘ
leftaroundabout

13

형식적으로 말하면, 함수의 집합이다 되도록 일부에 대한 상수 모두 충분히 큰  . 따라서 가장 놀랍도록 정확한 작성 방법은 입니다. 그러나 대신 사용하는  것이 완전히 표준이며 은 합니다. 우리는 집합 거의 조작하지 않기 때문에 본질적으로 결코 모호하지 않습니다 .O(f(n))gg(n)kf(n)knT(n)O(f(n))=T(n)=O(f(n))T(n)O(f(n))O(f(n))

어떤 의미에서, 등식을 사용하면 은 "일부 함수 와 같이 은 충분히 큰  "을 의미하며, 이는 다음과 같은 것을 쓸 수 있음을 의미합니다 입니다. 예를 들어 또는 보다 훨씬 정확 합니다.O(f(n))gg(n)fg(n)nf(n)=3n+O(logn)f(n)=Θ(n)f(n)=O(n+logn)


쓸 수도 있습니다 . 으로 여러 단계 계산을 것이 편리 할 수 ​​있음을 인정합니다 . f ( n ) = = 3 n + O ( log n )f(n)3nO(logn)f(n)==3n+O(logn)
leftaroundabout

재 배열은 독립형 진술에서만 작동합니다. 계산 중에는 그 종류의 일이 작동하지 않고 여러 함수가 Landau 표기법으로 함께 흡수되는 경우가 훨씬 흔합니다. ( 과 같은 스터프 ) f(x)=ex(e2x+O(x))=ex+o(1)
David Richerby

4
저런 저런 계산을 찾았습니다. 그 등호는 더 이상 양방향이 아닙니다. 을 쓰는 데 문제가 더 있는지 잘 모르겠습니다 . 나는 또한 표기법의 남용이라고 생각합니다. 기본적으로 연산자를 오버로드하는 반면 와 을 들어서 세트에서 작동 하는 것을 선호 합니다. = + f(x)ex(e2x+O(x))ex+o(1)=+
leftaroundabout

가능성있는 점근선 함수 집합 및이 집합의 결정되지 않은 요소 (예 : 대해 약간 다른 표기법을 사용할 수 있습니다 . 따라서 이면 모호한 대신 를 쓸 수 있습니다 . 그러면 문제없이 쓸 수 있습니다 . 지정되지 않은 요소에 대한 다른 가능한 표기법 수도있을 , ... O ( h ) f - g O ( h ) f = g + O ( h ) f = g + O ( h ) O ( h ) = f - g O ( h ) ˙ O ( H ) O ( H )O(h)O(h)fgO(h)f=g+O(h)f=g+O(h)O(h)=fgO(h)O˙(h)O^(h)
미셸 Fioc

11

프롤로그 : 큰 표기법은 인간의 마음에 사랑받는 언어의 일부로서 일부 표기법의 힘과 모호성의 전형적인 예입니다. 얼마나 많은 혼란이 있었더라도, 우리가 쉽게 식별하고 효율적으로 동의 할 수있는 아이디어를 전달하는 표기법의 선택으로 남아 있습니다.O

나는 큰 표기법의 의미를 완전히 이해 합니다. 내 문제는 우리가 라고 말할 때 , 여기서 은 크기 입력에 대한 알고리즘의 실행 시간입니다 .OT(n)=O(f(n))T(n)n

죄송하지만 큰 표기법 의 의미를 이해하면 문제가 없습니다 .O

나는 그것의 의미를 이해합니다. 그러나 과 은 서로 다른 두 가지입니다. 은 정확한 숫자이지만 는 숫자를 내뿜는 함수가 아니므로 기술적으로같다고 말할 수 없습니다. 당신 은 의 가치 가 무엇입니까, 당신의 대답은 무엇입니까? 답이 없습니다.T(n)O(f(n))T(n)O(f(n))T(n) O ( f ( n ) ) O ( f ( n ) ) O(f(n))O(f(n))

중요한 것은 의미론 이다. 중요한 것은 사람들이 관심있는 점근 적 행동이나 시간 또는 공간의 복잡성을 설명하는 정확한 해석에 쉽게 동의 할 수있는 방법입니다. 의 기본 정확한 해석 / 정의 은 Wikipedia 에서 번역 된대로T(n)=O(f(n))

T 는 실수 또는 복소수 값의 함수이고 는 실수 값의 무한한 부분 집합에 정의 된 실제 값 함수이므로 은 충분히 큰 값에 대해 모두 양수입니다 . 충분히 큰 모든 값에 대해 의 절대 값은 최대 의 양의 상수 배수입니다 . 즉, 양의 실수가 존재 과 실수 그러한가ff(n)nnT(n)f(n)Mn0

 for all nn0,|T(n)|Mf(n) for all nn0.

이 해석은 정의 로 간주 됩니다 . 다양한 방식으로 크게 도움이 될 수있는 다른 모든 해석 및 이해는 부차적이며 결과적입니다. 모든 사람 (적어도 모든 답변자)은이 해석 / 정의 / 의미에 동의합니다. 이 해석을 적용 할 수 있다면 대부분의 시간이 좋을 것입니다. 긴장을 풀고 편안하십시오. 영어 나 프랑스어의 불규칙성 또는 대부분의 자연어에 대해 너무 많이 생각하지 않는 것처럼 너무 많이 생각하고 싶지 않습니다. 해당 정의에 따라 표기법을 사용하십시오.

T(n) 은 정확한 숫자이지만 는 숫자를 내뿜는 함수가 아니므로 기술적으로같다고 말할 수 없습니다. 당신 은 의 가치 가 무엇입니까, 당신의 대답은 무엇입니까? 답이 없습니다.O(f(n))T(n) O ( f ( n ) ) O ( f ( n ) ) O(f(n))O(f(n))

실제로, 질문이 잘못 제기 되었기 때문에 대답이 없었습니다. 은 정확한 숫자를 의미하지 않습니다. 이름이 이고 형식 매개 변수가 의 에 된 )를 나타냅니다. 라고 쓰면 정확하고 훨씬 더 정확합니다 . 경우 매핑하는 함수이며 에 및 함수 맵이다 에 , 또한 기록에 종래 또는T(n)Tnnf(n)T=O(f)Tnn2fnn3f(n)=O(n3)n2=O(n3)O. 정의는 가 함수인지 여부를 나타내지 않습니다. 왼쪽이 오른쪽과 같다고 말하지는 않습니다! 등호는 평등의 의미에서 평등을 의미하지 않는다고 의심 할 권리가 있습니다. 평등의 양쪽을 바꿀 수 있으며 동등한 관계에 의해 뒷받침되어야합니다. (등호 남용의 또 다른 유명한 예는 일부 언어에서 보다 성가신 대신 대부분의 프로그래밍 언어에서 할당을 의미하기 위해 등호를 사용하는 것입니다 .)O:=

우리가 아니라 하나의 평등에 대해 우려하는 경우 (내가 아니라 언어를 남용하기 시작하고 그것. 평등하지 않지만, 그것은 평등이 거기 표기법에 등호가 또는 그것이 평등의 일종으로 해석 될 수 있기 때문에 ), 이면이 답변이 완료됩니다.T(n)=O(f(n))

그러나 문제는 실제로 계속됩니다. 예를 들어 이란 무엇입니까? 이 평등은 위의 정의에 포함되지 않습니다. 자리 표시 자 규칙이라는 또 다른 규칙을 소개하려고 합니다. 다음은 Wikipedia에 명시된 자리 표시 자 규칙에 대한 전체 설명입니다 .f(n)=3n+O(logn)

더 복잡한 사용법에서 는 방정식의 여러 위치에서 각면에 여러 번 나타날 수 있습니다. 예를 들어, 다음은 됩니다.O()n

(n+1)2=n2+O(n)
(n+O(n1/2))(n+O(logn))2=n3+O(n5/2)
nO(1)=O(en)

다음과 같은 문장의 의미는 각각 만족하는 모든 기능에 대한 좌측을 각각 만족하는 일부 기능있다 오른쪽에되도록 방정식에 모든 이러한 기능을 대체 양측을 동일하게 만듭니다. 예를 들어, 위의 세 번째 방정식은 "모든 함수 에 대해 와 같은 . "O()O()f(n)=O(1)g(n)=O(en)nf(n)=g(n)

실제 자리 표시 자 규칙의 다른 예 를 보려면 여기 를 확인 하십시오 .

내가 지금까지 큰 표기법에 대한 이론적 인 설명을 사용하지 않았다는 것을 알았을 것입니다. 내가 한 것은 " 은 함수의 집합 "과 같은 이론적 인 설명 없이도 보여주기 위한 것입니다. 우리는 여전히 큰 표기법을 완전하고 완벽하게 이해할 수 있습니다 . 이 이론적 설명이 유용하다면 어쨌든 계속 진행하십시오.OO(f(n))O

big , , small , small , multivariable 사용법 등과 같이 점근선 동작 표기법 패밀리에 대한보다 자세한 분석 및 사용 패턴에 대해서는 CLRS의 "점근선 표기법"섹션을 확인할 수 있습니다 . 위키 백과 항목 도 꽤 좋은 참조입니다.ΘΩoω

마지막으로, 여러 변수 12 로 큰 표기법 이있는 고유 한 모호성 / 논쟁이 있습니다. 그것들을 사용할 때 두 번 생각하고 싶을 수도 있습니다.O


10

에서 알고리즘 디자인 매뉴얼 [1], 당신은이 문제에 대한 단락을 찾을 수 있습니다 :

, 및 포함한 Big Oh 표기법 은 함수를 비교할 때 대등 한 평등 개념을 제공합니다. 과 같은 표현식을 보는 것은 다소 애매 하지만 상한과 하한으로 정의로 돌아가서 의미를 항상 해결할 수 있습니다. 여기서 "="인 "" 중 하나를 의미하는 것으로 읽는 것이 가장 유익합니다 . 분명히 는 인 함수 중 하나입니다 .OΩΘn2=O(n3)n 2 O ( n 3 )n2O(n3)

엄밀히 (가 언급 한 바와 같이 말하기 데이비드 Richerby의 코멘트 ) 당신에게 평등의 대략적인 개념을 제공 보다 적게보다는 또는 동등한-의 대략적인 개념을, 그리고 와보다 큰 또는 동등한의 거친 개념 -에.ΘOΩ

그럼에도 불구하고 Vincenzo의 답변에 동의합니다 . 을 함수 집합으로, = 기호를 설정된 멤버십 기호 해석하면 .O(f(n))


[1] Skiena, SS 알고리즘 디자인 매뉴얼 (제 2 판). 스프링거 (2008)


7

일반적으로, 와 같은 문장 은 해석되어 로 해석 될 수 있습니다

f=O(g)
there exists hO(g) such that f=h.

데이비드 Richerby 우리 물품 여기서 언급처럼이 상황에서 더욱 유용하게 의미하는 "존재 되도록 . "f(n)=n3+O(n2)g(n)O(n2)f(n)=n2+g(n)

이 실존 적 수량화 해석이 매우 유용하다는 것을 알았습니다.

f(n)O(n3)

일부는 훨씬 더 심각한 스타일의 위반을 발견 할 수 있지만 " 과 같은 가 있습니다."라고 쓰는 공간 절약적인 방법 일뿐 입니다.Cf(n)Cn3


그의 교과서에서 Jeff Edmonds는 사용합니다 .
Theodore Norvell

2

많은 다른 포스터 함수 세트를 나타내는 바와 같이 큰-O가 생각 될 수 있음을 설명했고, 표기 것을 을 가리 (의 함수로서 ) 에 설정 은 표시됩니다 (다시 매개 변수로 을 고려함 ). 영어 텍스트에서는 혼동을 피하기 위해 " is "로 작성하는 것이 좋습니다.n2=O(n3)n2nO(n3)nn2O(n3)

표기법이 혼동 될 수 있지만, 와 를 동일한 표기법의 일부로 생각하는 데 도움이 될 수 있습니다 . 즉, 를 하나의 기호 인 것처럼 취급 하는 것이 좋습니다. 프로그래밍 언어로 작성할 때하는 것과는 조금 다릅니다 . 인접한 두 개의 심볼이 눈에 들어갑니다.O==O>=

표기법의 또 다른 까다로운 측면은 매개 변수 역할을하는 변수가 함수 선언이나 람다 표기법과 같은 방식 으로 명시 적으로 식별되거나 바인딩 되지 않는다는 것입니다. 가 상수 라는 것을 암시 할 수 있기 때문에 와 같이 와 같은 식에서와 같이 두 개의 변수가 관련된 경우에는 특히 혼란 스러울 수 있습니다 . 다시 말하지만, 일부 알고리즘은 Big-O 세트에서 복잡성이 두 변수에 따라 기술적으로 다르지만 실제로 그 중 하나는 고정되어 있습니다. 또한 하나의 알고리즘의 복잡성을 측정하는 여러 가지 합리적인 방법이있을 수 있습니다. 입력이 숫자 인 경우, 예를 들어, 알고리즘이있을 값에O(mn)O(nc)cO(n)n숫자 의 비트 크기에서 이지만 숫자의 복잡성 이론 자체는 있지만 비트 크기가 일반적으로 올바른 매개 변수입니다.O(2b)

이 모든 것은 Big-O가 부정확성에 의해 비공식적 인 표기법이며, 저자가 말하는 것을 이해하기 위해 종종 다른 맥락을 사용해야합니다.

항상 그렇듯이 자신의 글에서 혼란을 피하는 것이 가장 좋으며, 피하고 대신 또는 영어 "… is in…"를 사용하는 것이 좋습니다 .=OO


" "일반적으로 판독 될 " 의 큰 O -squared이고 -cubed"또는 " 순서 -squared 인 -cubed." n2=O(n3)nnnn
David Richerby

2

여러 번 이루어진 요점에 밑줄을 긋기 위해 NG de Bruijn, Asymptotic Methods in Analysis에서 인용 할 수 있습니다 .

이러한 모든 공식의 일반적인 해석은 다음과 같이 표현 될 수 있습니다. 기호 와 관련된 표현 은 함수의 클래스로 간주됩니다. 만약 범위 간주하고 폼의 모든 기능의 클래스를 나타내고, 함께 , . 그리고 는 클래스가 클래스에 포함되어 있음을 의미합니다.O0<x<O(1)+O(x2)f(x)+g(x)f(x)=O(1)(0<x<)g(x)=O(x2)(0<x<)x1O(1)=O(1)+O(x2)x1O(1)O(1)+O(x2). 때로는 관계의 왼쪽이 클래스가 아니라 단일 함수 [...]입니다. 그런 다음 관계는 왼쪽의 함수가 오른쪽의 클래스 멤버임을 의미합니다.

기호 는 대칭을 제안하고 그러한 대칭이 없기 때문에 그러한 관계에 대해 실제로 잘못된 기호 라는 것이 분명합니다 . 예를 들어, 는 정확하지만 가 잘못되었습니다. 그러나 일단이 경고가 주어지면 sign 을 사용하면 크게 해를 끼치 지 않으며 관습적인 것 외에 다른 이유없이이를 유지해야합니다.=O(x)=O(x2)(x)O(x2)=O(x)(x)=

도널드 크 누스 (Donald Knuth)는 또한 수학자 들이 영어에서 "is"라는 단어를 사용할 때 기호를 자주 사용한다고 지적했다 . "아리스토텔레스는 남자이지만 남자는 반드시 아리스토텔레스 일 필요는 없습니다."=

그러나 Bender와 Orszag의 표기법 ( 과학자와 엔지니어를위한 고급 수학적 방법 )은 훨씬 덜 혼란스럽고 고려할 가치가 있습니다. 한계에 대해서는 다음과 같이 말합니다.

f(x)g(x)(xx0)

( " 는 점근 "으로 발음 됨 ) 의미fg

limxx0f(x)g(x)=1

과:

f(x)g(x)(xx0)

( " 는 와 비교하여 무시할 수 있음 "으로 발음 ) 의미fg

limxx0f(x)g(x)=0

그러나 big-oh 표기법의 이점은 상수 요소가 임의적이라는 것입니다. (그리고 약간의 표기법의 경우 상수 요소는 무엇이든 상관 없습니다.)


0

나는 이것을 stackoverflow로 넘겼다 . OP에 대한 가장 정확한 답변은 위에서 이미 언급되었지만 (아래의 # 1로 등가되는 클래스) 아래에 완전한 답변이 있습니다.

  1. sets : " "는 을 의미합니다. 즉, 집합의 멤버십, 예 : " 의해 점진적으로 묶인 함수 세트 " 이것은 내가 알고있는 점근 법 표기법의 표준 수학적 처리입니다. 이 집합은 하위 집합에 해당하는 부분 순서를 갖습니다 예 : (일부 집합은 비교할 수 없음; DAG; 흥미로운 것은 다항식 계층 구조 참조) 예).f=O()fO(){12x2,(5x2x+5),2.5x,...}x2O(x2)<O(x3)=O(x3+x)

    노트. " "는 합니다. 그러나, 주 위 달리이 분명 동치 관계 (같이 순진한 관계 X 것을 IFF 하지 등가 클래스 보낸 을 의미하지는 않는 ; " 의 요소 둘 다"의 사소한 동등성 관계 는 아마도 개념적으로는 수학적으로 흥미롭지 않지만, 에서는 다중 동등성 클래스는 함수의 공간을 분할합니다.f=Θ()fΘ()f X gfO(g)fO(g)gf(g)O(g)Θ

  2. 와일드 카드 표현 : 당신의 정의를 이전 버전과 엔지니어 수 : (AN 존재 즉 기원 근처에 무관 심한 일부 반경 후 , 등이 모든 것을 위해 ...)하는 존재 (즉, ) 를 경계 로하는 상수 상수 배수로 , 그래서 우리는 단지 어떤 식 표현식으로 , 즉 바운드 자체와 우리가 신경 쓰지 않는 오류 용어 ( 묶인 오류 용어 에 대한fΘ(g)x0x>x0gfLOWg(x)f(x)HIGHg(x)O(g)k1g(x)+err(x)0err(x)k2g(x)x>x0 ) .....에 대해 잠재적으로 제한이 없습니다. 예를 들어 라고 말하면 이 오류 용어는 입니다. 우리는 결코 이것을 적어 두지 않을 것입니다 ... 조금 어리석기 때문입니다. 그러나 나는 그렇게 생각하는 것이 합법적 일 수 있으며 평등의 개념을 보존 할 것이라고 믿는다. (여기에서 부정적인 징후를 올바르게 치료하고 있습니다. 중요 할 수 있습니다.)xx0f=2Θ(x2)f(x)=2k1x2+err(x)0err(x)k2x2

    에이. 대신 위의 내용을 수정하십시오.OΘ


1 부는 이제 작동하는 것 같습니다. 그러나 2에서 오류 용어를 처리하는 것은 여전히 ​​잘못입니다. 긍정적 인 용어 대해 를 로 쓸 수 없습니다 . 그리고 만약 당신이 라고 쓰려고한다면, 나는 당신이 오류 용어를 "걱정하지 않는다"고 말하는 것이 사실이라고 생각하지 않습니다. 오류 항은 이며 이는 보다 훨씬 큽니다 . x2k1x3+errerrx2=2x+err2xx2x2
David Richerby

0

더 정확한 답은 함수 f가 '함수 g의 큰 O'라고 말할 때입니다. (즉, x ^ 2 + x는 O (x ^ 2)입니다) 우리는 어떤 값 C와 k에 대해 f (x) <C * g (x)이고 여기서 x> k입니다. 이것은 g가 f의 beaiver에 대한 상한임을 의미합니다.

x ^ 2 + 10x 4는 O (x ^ 2 + x)이며 이는 자체 O (x ^ 2)입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.