Phân tích toán học: Tỷ lệ giữa Phân vùng và Hoán vị

05 tháng 6, 2026·2 phút đọc

Bài viết đi sâu vào chuỗi lũy thừa của hàm mũ kép exp(exp(y)), nơi hệ số của chuỗi phản ánh tỷ lệ giữa số Bell (số cách phân vùng) và giai thừa (số cách hoán vị). Chúng ta sẽ xem xét cách sử dụng thư viện SymPy của Python để tính toán chính xác các con số này, cũng như phân tích tốc độ tăng trưởng tiệm cận của chúng.

Phân tích toán học: Tỷ lệ giữa Phân vùng và Hoán vị

Gần đây, tôi đã dành thời gian suy nghĩ về phép xấp xỉ cosin cho hàm Gaussian:

$$exp(-z^2) \approx (1 + \cos(\sin(z) + z))/2$$

Hai biểu thức trên khá gần nhau trên trục thực, nhưng lại khác biệt hoàn toàn trên trục ảo. Nếu $z = iy$, vế phải tăng trưởng nhanh hơn nhiều so với vế trái, hoạt động giống như $exp(exp(y))$. Điều này đã dẫn tôi đến việc tìm hiểu chuỗi lũy thừa của hàm mũ kép $exp(exp(y))$.

Đây là một chuỗi thú vị vì hệ số của $x^n$ được biểu diễn bằng công thức:

$$e B_n / n!$$

Trong đó, $B_n$ là số Bell thứ $n$, bằng số cách để phân vùng một tập hợp gồm $n$ phần tử được gắn nhãn [1]. Và tất nhiên, $n!$ là số cách để hoán vị một tập hợp gồm $n$ phần tử được gắn nhãn. Do đó, hệ số thứ $n$ trong chuỗi lũy thừa của $exp(exp(y))$ chính là tỷ lệ giữa số lượng phân vùng và hoán vị của một tập hợp có $n$ phần tử, nhân với hằng số $e$.

Số cách để phân vùng một tập hợp gồm $n$ vật tăng lên rất nhanh khi $n$ tăng, gần bằng tốc độ tăng của số hoán vị, vì vậy chuỗi của hàm mũ kép hội tụ rất chậm.

Tính toán với SymPy

SymPy cung cấp một hàm có tên là bell để tính toán các số Bell, do đó bạn có thể tính toán tỷ lệ giữa phân vùng và hoán vị như sau:

from sympy import bell, factorial

f = lambda n: bell(n)/factorial(n)

Hàm này sẽ trả về một số thuộc kiểu sympy.core.numbers.Rational, vì vậy kết quả là chính xác. Bạn có thể chuyển đổi nó sang kiểu float để tiện sử dụng.

Phân tích Tiệm cận

Nếu chúng ta chỉ xem xét các hạng tử trong chuỗi tiệm cận của $\log B_n$ và $\log n!$ tăng theo $n$, ta có:

$\log B_n \sim n \log n - n \log \log n$

$\log n! \sim n \log n - \frac{1}{2} \log n$

Và từ đó:

$\log( B_n / n! ) \sim \frac{1}{2} \log n - n \log \log n$

Ngoài ra, còn có một chuỗi tiệm cận cho $\log( B_n / n! )$ liên quan đến hàm Lambert W:

$\log( B_n / n! ) \sim n/r - 1 - n \log r$

Trong đó $r = W(n)$.

[1] Điều quan trọng là các phần tử phải được gắn nhãn. Số phân vùng (partition numbers) là số lượng phân vùng của một tập hợp không được gắn nhãn. Số phân vùng nhỏ hơn nhiều so với số Bell.

Chia sẻ:FacebookX
Nội dung tổng hợp bằng AI, mang tính tham khảo. Xem bài gốc ↗