빅 -O 표기법으로 계수를 논의하는 방법


10

big-O 표기법에서 함수 계수를 논의하기 위해 어떤 표기법이 사용됩니까?

두 가지 기능이 있습니다.

  • f(x)=7x2+4x+2
  • g(x)=3x2+5x+4

분명히 두 함수는 모두 O(x2) 이며 실제로 Θ(x2) 이지만 그보다 더 이상 비교할 수는 없습니다. 계수 7과 3에 대해 논의하는 방법 계수를 3으로 줄이면 점근 적 복잡성이 변경되지 않지만 여전히 런타임 / 메모리 사용량에 큰 차이가 있습니다.

fO ( 7 x 2 ) 이고 gO ( 3 x 2 ) 라고 말하는 것이 잘못 입니까? 계수를 고려하는 다른 표기법이 있습니까? 아니면 이것을 논의하는 가장 좋은 방법은 무엇입니까?fO(7x2)gO(3x2)


O(7x2)=O(x2)

참조 질문참조 하십시오 .
Raphael

답변:


9

OΘΘ(n2)7x2+4x+2=Θ(7x2)7x2+4x+2=Θ(3x2)Θ(kx2)k

Θ

f(x)g(x)limxf(x)g(x)=1

예를 들어, 이지만 클레임 는 false입니다. 물결표 표기법을 선행 계수를 보존하는 표기법으로 생각할 수 있는데 , 이는 지배적 성장 항의 선행 계수에 관심이있는 경우 찾고있는 것 같습니다.7x2+4x+27x27x2+4x+23x2Θ


물결표 표기법은 내가 찾고있는 것입니다. 나는 그것이 무엇이라고 불리는 지 기억하지 못하는 것이 있었고 검색이 무익한 것으로 판명되었습니다. 감사!

6

물결표는 한 가지 방법입니다. 를 고수하고 싶다면 말할 수 있습니다.O

f(x)=7x2+O(x)

g(x)=3x2+O(x) 입니다.


더 나은 방법 : f (x) = 7x ^ 2 + o (x ^ 2)라고 말하면 little-o 표기법을 사용하여 남은 것이 x ^ 2보다 점진적으로 작다는 것을 알 수 있습니다.
templatetypedef

2
O (x)는 o (x ^ 2)보다 엄격히 작으므로 big-O를 사용하는 것보다 명확하지 않습니다. 반면에, 첫 번째 학기가 맞았다 고 말하고 싶을 때 little-o를 사용하는 것이 더 일반적입니다. 왜냐하면 다음 학기에 대해 걱정할 필요가 없기 때문입니다. (그리고 우리가 완전히 명확하게하기를 원한다면, 왜 정확히 정확하기 때문에 처음에 7x ^ 2 + 4x + 2를 쓰지 않는지 설명해야합니다.

당신은 절대적으로 맞습니다 ... 내 사과!
templatetypedef

이를 작성하는 엄격한 방법은 " with "입니다. 어쨌든, 이것은 "첫 번째"상수보다 더 많은 것을 고치려는 경우 매우 유용합니다. 할 수없는 " " 이라고 말할 수 있습니다 . f(x)=7x2+g(x)g(x)O(x)f(x)=7x2+4x+O(1)
Raphael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.