Có một công thức khép kín đơn giản về mặt gốc của đa thức bậc 6.
Nó thực sự là một chút dễ dàng hơn để xem xét một chết bằng chung với d≥ 2 mặt dán nhãn với các con số 1 , 2 , ... , d.
Đặt là số lượng cuộn dự kiến cần bằng hoặc vượt quá Với Mặt khác, kỳ vọng là nhiều hơn kỳ vọng số lượng cuộn đạt được giá trị ngay trước đó, sẽ nằm trong số từ đóekk .k ≤ 0 , ek= 0.k - d, k - d+ 1 , ... , k - 1 ,
ek= 1 + 1d( ek - d+ ek - d+ 1+ ⋯ + ek - 1) .(1)
Đây mối quan hệ tuyến tính tái phát có một giải pháp theo hình thức
ek= 2 kd+ 1+ Σi = 1dmộtTôiλkTôi(2)
Trong đó là gốc phức của đa thứcλTôid
Td- 1d( Td- 1+ Td- 2+ ⋯ + T+ 1 ) .(3)
Các hằng số được tìm thấy bằng cách áp dụng giải pháp cho các giá trị trong đó trong mọi trường hợp. Điều này đưa ra một tập hợp các phương trình tuyến tính trong các hằng số và nó có một giải pháp duy nhất. Giải pháp đó có thể được chứng minh bằng cách xác minh sự tái phát bằng cách sử dụng thực tế là mọi gốc thỏa mãnmộtTôi( 2 )k = - ( d−1),−(d−2),…,−1,0ek=0dd(1)(3):
1+1d∑j=1dek - j=1+1d∑j=1d( 2 (k−j)d+1+∑Tôi=1daTôiλk -jTôi)= 2kd+ 1+ Σi = 1dmộtTôiλk - dTôi[1d( 1 +λTôi+ ⋯ + λd- 1Tôi) ]= 2 kd+ 1+ Σi = 1dmộtTôiλk - dTôiλdTôi= 2 kd+ 1+ Σi = 1dmộtTôiλkTôi= ek.
Giải pháp dạng đóng này cung cấp cho chúng ta những cách tốt để ước tính câu trả lời cũng như đánh giá chính xác. (Đối với các giá trị nhỏ đến khiêm tốn áp dụng trực tiếp tái phát là một kỹ thuật tính toán hiệu quả.) Ví dụ, với chúng ta có thể dễ dàng tính toánk ,d= 6
e1000000= 285714.761905 ...
Đối với các xấp xỉ, sẽ có một gốc lớn nhất duy nhất vì vậy cuối cùng (đối với đủ lớn ) thuật ngữ sẽ thống trị các thuật ngữ trongLỗi sẽ giảm theo cấp số nhân theo chỉ tiêu nhỏ thứ hai của rễ. Tiếp tục ví dụ với hệ số của là và chỉ tiêu nhỏ nhất tiếp theo là (Ngẫu nhiên, khác có xu hướng rất gần với trong kích thước.) Như vậy chúng ta có thể xấp xỉ giá trị trước đó nhưλ+= 1kλk+d( 2 ) .k = 6 , λ + a + = 0.4761905 0.7302500. một tôi 1k = 6 ,λ+một+= 0,4719050,7302500.mộtTôi1
e1000000≈ 2 × 1066 + 1+ 0,4761905 = 285714.761905 ...
có lỗi theo thứ tự0,7302500106≈ 10- 314368.
Để chứng minh giải pháp này thực tế đến mức nào, đây là R
mã trả về một hàm để đánh giá cho bất kỳ (trong phạm vi tính toán dấu phẩy động chính xác kép) và không quá lớn (nó sẽ sa lầy một lần ):ekkdd≫100
die <- function(d, mult=1, cnst=1, start=rep(0,d)) {
# Create the companion matrix (its eigenvalues are the lambdas).
X <- matrix(c(0,1,rep(0,d-1)),d,d+1)
X[, d] <- mult/d
lambda <- eigen(X[, 1:d], symmetric=FALSE, only.values=TRUE)$values
# Find the coefficients that agree with the starting values.
u <- 2*cnst/(d+1)
a <- solve(t(outer(lambda, 1:d, `^`)), start - u*((1-d):0))
# This function assumes the starting values are all real numbers.
f <- Vectorize(function(i) Re(sum(a * lambda ^ (i+d))) + u*i)
list(f=f, lambda=lambda, a=a, multiplier=mult, offset=cnst)
}
Như một ví dụ về việc sử dụng nó, ở đây, nó tính toán các kỳ vọng chok = 1 , 2 , ... , 16 :
round(die(6)$f(1:10), 3)
1.000 1.167 1.361 1.588 1.853 2.161 2.522 2.775 3.043 3.324 3.613 3.906 4.197 4.476 4.760 5.046
Đối tượng mà nó trả về bao gồm các gốc và số nhân của chúng để phân tích thêm. Thành phần đầu tiên của mảng số nhân là hệ số hữu íchλTôimộtTôimột+.
(Nếu bạn tò mò không biết các tham số khác die
dùng để làm gì, hãy thực hiện die(2, 2, 0, c(1,0))$f(1:10)
và xem bạn có nhận ra đầu ra không ;-). Sự khái quát hóa này đã hỗ trợ trong việc phát triển và thử nghiệm chức năng.)