Mảng sau chiếm 10000 khe trong bộ nhớ:
a = [0,1,2,3,4,5,6,7,8,9,10,...,10000]
Nhưng người ta có thể dễ dàng biểu diễn cùng một mảng như:
a = {len:10000, get: λ idx -> idx}
Mà nhỏ gọn hơn nhiều. Tương tự, có một số mảng có thể được biểu diễn nhỏ gọn:
a = {a:1000, get: λ idx -> idx * 2}
Is a description for [0,2,4,6,8,10,...,2000]
a = {a:1000, get λ idx -> idx ^ 2}
Is a description for [0,1,2,4,9,...1000000]
And so on...
Cung cấp rất nhiều mảng có thể được biểu diễn theo những cách ngắn hơn nhiều so với việc lưu trữ từng phần tử trên bộ nhớ, tôi hỏi:
- Có một tên cho hiện tượng này?
- Có cách nào để tìm đại diện tối thiểu cho một mảng cụ thể không?
- Xem xét điều này có lẽ phụ thuộc vào ngôn ngữ mô tả (trong trường hợp này, tôi đã sử dụng ngôn ngữ lập trình tưởng tượng với các hàm, đối tượng và toán tử toán học). Có một ngôn ngữ cụ thể nào là tối ưu để tìm loại mô tả tối thiểu đó cho các đối tượng không?