js 记忆函数
使用js记忆函数来计算菲波那切数列、阶乘等,可以极大减少我们必须要做的工作,加速程序计算。
1.编写记忆函数memoizer
1 2 3 4 5 6 7 8 9 10 11 12 13 | var memoizer = function (memo, fundamental) { //memo记忆数组和fundamental函数 //管理memo存储、何时调用fundamental var shell = function (n) { var result = memo[n]; if ( typeof result !== 'number' ) { result = fundamental(shell, n); memo[n] = result; } return result; }; return shell; }; |
2.菲波那切数列
1 2 3 4 5 6 7 | //用memoizer定义fibonacci函数 var fibonacci = memoizer([0, 1], function (shell, n) { return shell(n - 1) + shell(n - 2); }); fibonacci(10); > 55 //结果 |
3.阶乘
1 2 3 4 5 6 7 8 | //用memoizer定义factorial函数 var factorial = memoizer([1, 1], function (shell, n) { return n * shell(n - 1); }); factorial(10); > 3628800 //结果 |
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步