You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何编程缓存复用技术被命名为Memoization而非memorization?

为什么编程中的缓存技术叫Memoization而非memorization?

Memoization是一种编程技术,会存储并复用开销较大的函数调用结果,避免重复计算以提升性能。

Memoization示例

import java.util.HashMap;
import java.util.Map;

public class Fibonacci {

    private static Map<Integer, Integer> memory = new HashMap<>();

    public static void main(String[] args) {
        int result = calculateFibonacci(5);
        System.out.println("Fibonacci number at position 5 is: "  + result);
    }

    private static int calculateFibonacci(int n) {
        if (n <= 1) { return n;}
        if (memory.containsKey(n)) { return memory.get(n); }
        
        int fib = calculateFibonacci(n - 1) + calculateFibonacci(n - 2);
        memory.put(n, fib);

        return fib;
    }
}

日常语境中这类"存储并复用结果"的行为被称为memorization,但编程领域特意用去掉字母"r"的Memoization来命名这项技术,核心原因如下:

  • 明确术语边界:该术语由人工智能先驱Donald Michie在1968年创造,他刻意省略了"r",目的是将这个编程技术和日常的"记忆(memorization)"概念做明确区分——它不是泛指的记忆行为,而是针对函数计算结果的、有固定规则的缓存机制。
  • 打造专属技术命名:通过修改拼写,让Memoization成为计算机科学领域的专属术语,避免和日常词汇混淆,方便从业者精准指代这项特定技术。

内容的提问来源于stack exchange,提问作者Akiner Alkan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 18:17:40