Ada formula tertutup sederhana dalam hal akar polinomial derajat-6.
Sebenarnya sedikit lebih mudah untuk mempertimbangkan kematian umum yang umum dengan d≥ 2 wajah yang berlabel angka 1 , 2 , ... , d.
Biarkan ek menjadi jumlah yang diharapkan dari gulungan yang dibutuhkan untuk sama atau melebihi k . Untuk k ≤ 0 , ek= 0. Kalau tidak, ekspektasinya adalah lebih dari ekspektasi jumlah gulungan untuk mencapai nilai sebelumnya, yang akan berada di antara k - d, k - d+ 1 , ... , k - 1 , mana
ek= 1 + 1d( ek - d+ ek - d+ 1+ ⋯ + ek−1).(1)
Hubungan perulangan linier ini memiliki solusi dalam bentuk
ek=2kd+1+∑i=1daiλki(2)
dimana λi adalah d akar kompleks dari polinomial
Td−1d(Td−1+Td−2+⋯+T+1).(3)
Konstanta ai ditemukan dengan menerapkan solusi (2) ke nilai k=−(d−1),−(d−2),…,−1,0 mana ek=0 dalam setiap kasus. Ini memberikan satu set persamaan linear d dalam konstanta d dan ia memiliki solusi unik. Solusi itu dapat ditunjukkan dengan memverifikasi perulangan (1)menggunakan fakta bahwa setiap root memuaskan (3):
1+1d∑j=1dek−j=1+1d∑j=1d(2(k−j)d+1+∑i=1daiλk−ji)=2kd+1+∑i=1daiλk−di[1d(1+λi+⋯+λd−1i)]=2kd+1+∑i=1daiλk−diλdi=2kd+1+∑i=1daiλki=ek.
Solusi bentuk tertutup ini memberi kami cara yang baik untuk memperkirakan jawaban serta mengevaluasinya secara akurat. (Untuk nilai k, kecil sampai sedang , aplikasi langsung dari perulangan adalah teknik komputasi yang efektif.) Sebagai contoh, dengan d=6 kita dapat dengan mudah menghitung
e1000000=285714.761905…
Untuk perkiraan, akan ada akar unik terbesar λ+=1 sehingga akhirnya (untuk k cukup besar ) istilah λk+ akan mendominasi istilah d dalam (2).Kesalahan akan menurun secara eksponensial sesuai dengan norma terkecil kedua dari akar. Melanjutkan contoh dengan k=6, koefisien λ+ adalah a+=0.4761905 dan berikutnya terkecil norma adalah 0.7302500. (Kebetulan, yang lain ai cenderung sangat dekat dengan1 dalam ukuran.) Jadi kita dapat mendekati nilai sebelumnya sebagai
e1000000≈2×1066+1+0.4761905=285714.761905…
dengan kesalahan pada urutan 0.7302500106≈10−314368.
Untuk menunjukkan seberapa praktis solusi ini, berikut ini adalah R
kode yang mengembalikan fungsi untuk mengevaluasi ek untuk setiap k (dalam lingkup perhitungan titik mengambang presisi ganda) dan tidak terlalu besar d (itu akan macet sekali d≫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)
}
Sebagai contoh penggunaannya, ini menghitung ekspektasi untuk k=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
Objek itu kembali meliputi akar λi dan pengganda mereka ai untuk analisa lebih lanjut. Komponen pertama dari array pengganda adalah koefisien yang berguna a+.
(Jika Anda ingin tahu untuk apa parameter lainnya die
, jalankan die(2, 2, 0, c(1,0))$f(1:10)
dan lihat apakah Anda mengenali output ;-). Generalisasi ini membantu dalam mengembangkan dan menguji fungsi.)