Es gibt eine einfache geschlossene Formel in Bezug auf die Wurzeln eines Polynoms vom Grad 6.
Es ist tatsächlich etwas einfacher, einen allgemeinen fairen Würfel mit d≥2 Flächen zu betrachten, die mit den Nummern 1,2,…,d.
Sei ek die erwartete Anzahl von Rollen, die benötigt werden, um k. zu erreichen oder zu überschreiten . Für k≤0, ek=0. Andernfalls ist die Erwartung eins größer als die Erwartung, dass die Anzahl der Rollen den unmittelbar vorhergehenden Wert erreicht, der zwischen k−d,k−d+1,…,k−1, von wo aus
ek=1+1d(ek−d+ek−d+1+⋯+ek−1).(1)
Diese lineare Wiederholungsbeziehung hat eine Lösung in der Form
ek=2kd+1+∑i=1daiλki(2)
wobei λi die d komplexen Wurzeln des Polynoms sind
Td−1d(Td−1+Td−2+⋯+T+1).(3)
Die Konstanten ai werden durch Anwenden der Lösung (2) auf die Werte k=−(d−1),−(d−2),…,−1,0 wobei in jedem Fall ek=0 ist. Dies ergibt einen Satz von d linearen Gleichungen in den d Konstanten und es gibt eine einzigartige Lösung. Dass die Lösung funktioniert, kann durch Überprüfung der Wiederholung nachgewiesen werden (1)unter Verwendung der Tatsache, dass jede Wurzel erfüllt (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.
k,d=6
e1000000=285714.761905…
λ+=1kλk+d(2).k=6,λ+a+=0.47619050.7302500.ai1
e1000000≈2×1066+1+0.4761905=285714.761905…
0.7302500106≈10−314368.
R
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)
}
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
λiaia+.
(Wenn Sie neugierig sind, wozu die anderen Parameter die
dienen, führen Sie sie aus die(2, 2, 0, c(1,0))$f(1:10)
und prüfen Sie, ob Sie die Ausgabe erkennen ;-). Diese Verallgemeinerung half beim Entwickeln und Testen der Funktion.)