나는 오늘 알고리즘 분석이 계산 모델에 따라 다르다는 것을 배웠습니다 . 내가 생각하지 못했거나 들어 본 적이없는 것입니다.
User @chi 가 더 자세히 설명 한 예 는 다음과 같습니다.
예를 들어 , 주어진 x i를 반환 합니다. RAM에서는 어레이 액세스가 일정한 시간이기 때문에 O ( 1 ) 로 해결할 수 있습니다 . TM을 사용하여 전체 입력을 스캔해야하므로 O ( n )
이것은 기능 언어에 대해 궁금해합니다. 내가 이해 한 바에 따르면, "기능 언어는 람다 미적분학과 밀접한 관련이 있습니다"( 여기서 Yuval Filmus의 의견 ). 따라서 함수형 언어가 람다 미적분학을 기반으로하지만 RAM 기반 컴퓨터에서 실행되는 경우 순전히 기능적인 데이터 구조 및 언어를 사용하여 구현 된 알고리즘에 대한 복잡성 분석을 수행하는 적절한 방법은 무엇입니까?
순전히 기능적인 데이터 구조 를 읽을 기회는 없었지만 주제에 대한 Wikipedia 페이지를 보았으며 일부 데이터 구조는 전통적인 배열을 다음과 같이 대체 한 것으로 보입니다.
"배열은 맵 또는 랜덤 액세스 목록으로 대체 될 수 있으며 순전히 기능적인 구현을 허용하지만 액세스 및 업데이트 시간은 로그입니다."
이 경우 계산 모델이 다를 수 있습니다. 맞습니까?