>  기사  >  웹 프론트엔드  >  javascript는 메모리 함수를 사용하여 재귀 함수를 빠르게 계산합니다.javascript 기술

javascript는 메모리 함수를 사용하여 재귀 함수를 빠르게 계산합니다.javascript 기술

WBOY
WBOY원래의
2016-05-16 18:32:301221검색

계산할 피보나치 수열이 있는 경우:

코드 복사 코드는 다음과 같습니다.

var fibonacci = function (n) {
return n < 2 ? n : fibonacci(n - 1) fibonacci(n - 2)

숫자가 크면 브라우저가 충돌할까봐 두렵습니다. 함수가 작업 중에 반복되는 계산을 많이 하기 때문입니다. 하지만 JavaScript의 강력한 배열과 함수 클로저를 사용하면 계산된 결과를 쉽게 기억할 수 있습니다. 컴퓨팅 속도는 기하급수적으로 증가할 것입니다.

작지만 강력한 메모리 기능 :

코드 복사 코드는 다음과 같습니다.
var memoizer = function (메모, 기본) {
var shell = function (n) {
var result = memo[n]
if (typeof result !== 'number') {
result = Fundamental(shell, n);
}
return result;
return shell; >

첫 번째 매개변수는 초기 메모리 순서이고, 두 번째 매개변수는 기본 기능입니다. 사용하기가 더욱 쉽습니다.



코드 복사
코드는 다음과 같습니다. var fibonacci = memoizer( [0, 1], function (shell, n) { return shell(n - 1) shell(n - 2); })

마찬가지로 if 계승 순서 계산:



코드 복사
코드는 다음과 같습니다. var 계승 = memoizer([1, 1], function (shell, n) { return n * shell(n - 1); });
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.