Dilip Sarwate tarafından açıklanan durumun genelleştirilmesi
Diğer cevaplarda açıklanan yöntemlerden bazıları, bir 'sırayla' n jeton dizisi attığınız bir şema kullanır ve sonucuna bağlı olarak 1 veya 7 arasında bir sayı seçersiniz ya da dönüşü atar ve tekrar atılır.
Hile olasılıklar genişleme aynı olasılığı ile 7 sonuçların bir çoklu bulmaktır pk(1−p)n−k ve birbirlerine karşı eşleşir.
Toplam sonuç sayısı 7'nin katı olmadığı için, bir sayıya atamayacağımız birkaç sonucumuz var ve sonuçları atmamız ve baştan başlamamız gereken bir olasılık var.
Tur başına 7 jeton kullanma vakası
Sezgisel olarak, zarları yedi kez çevirmenin çok ilginç olacağını söyleyebiliriz. Zira sadece 27 olasılıktan 2'sini atmamız gerekiyor. Yani, 7 kez kafa ve 0 kez kafa.
Diğer tüm 27−2 olasılıkları için, her zaman aynı sayıda kafaya sahip olan 7 vakadan oluşan bir durum vardır. Yani 1 başlı 7 olgu, 21 başlı 2 olgu, 3 başlı 35 olgu, 4 başlı 35 olgu, 5 başlı 21 olgu ve 6 başlı 7 olgu.
Yani sayıyı hesaplarsanız (0 kafa ve 7 kafa atılarak) X=∑k=17(k−1)⋅Ck
ile Ck Bernoulli dağıtılmış değişkenler (0 ya da 1) yedi sonuç ile, X modülo 7 muntazam bir değişken.
Tur başına farklı sayıdaki jeton çevirilerinin karşılaştırılması
Her soru, tur başına en uygun rulo sayısının ne olacağı yönündedir. Tur başına daha fazla zar atmak size daha pahalıya mal olur, ancak tekrar yuvarlanma olasılığını düşürürsünüz.
Aşağıdaki resimde, dönüş başına ilk birkaç madeni para basma sayısı için manuel hesaplamalar gösterilmektedir. (muhtemelen analitik bir çözüm olabilir, ancak 7 madeni para klipsi olan bir sistemin gerekli madeni para klipsi için beklenen değere ilişkin en iyi yöntemi sağladığını söylemenin güvenli olduğuna inanıyorum)
# plot an empty canvas
plot(-100,-100,
xlab="flips per turn",
ylab="E(total flips)",
ylim=c(7,400),xlim=c(0,20),log="y")
title("expectation value for total number of coin flips
(number of turns times flips per turn)")
# loop 1
# different values p from fair to very unfair
# since this is symmetric only from 0 to 0.5 is necessary
# loop 2
# different values for number of flips per turn
# we can only use a multiple of 7 to assign
# so the modulus will have to be discarded
# from this we can calculate the probability that the turn succeeds
# the expected number of flips is
# the flips per turn
# divided by
# the probability for the turn to succeed
for (p in c(0.5,0.2,0.1,0.05)) {
Ecoins <- rep(0,16)
for (dr in (5:20)){
Pdiscards = 0
for (i in c(0:dr)) {
Pdiscards = Pdiscards + p^(i)*(1-p)^(dr-i) * (choose(dr,i) %% 7)
}
Ecoins[dr-4] = dr/(1-Pdiscards)
}
lines(5:20, Ecoins)
points(5:20, Ecoins, pch=21, col="black", bg="white", cex=0.5)
text(5, Ecoins[1], paste0("p = ",p), pos=2)
}
Erken bir durma kuralı kullanma
not: Aşağıdaki hesaplamalar, fiş sayısının beklenti değeri için, adil bir para için p=0.5 , farklı p için bunu yapmak karışıklık yaratacaktır , ancak ilke aynı kalmaktadır (farklı kitapların tutulması rağmen) davalar gerekli)
Daha önce durdurabileceğimiz durumları ( X formülü yerine ) seçebilmeliyiz.
5 jetonlu çevirme ile altı olası farklı sıralanmamış kafa ve kuyruk kümesi için elimizde:
1 + 5 + 10 + 10 + 5 + 1 sipariş setleri
Ve (eşit olasılıkla) bir sayı seçmek için on olgulu (2 kafalı grup veya 2 kuyruklu grup) olan grupları kullanabiliriz. Bu, 2 ^ 5 = 32 vakanın 14'ünde meydana gelir. Bu bize ile bırakır:
1 + 5 + 3 + 3 + 5 + 1 sipariş setleri
Ekstra (6'lık) bir jetonlu çevirme ile yedi farklı sıralanmamış kafa ve kuyruk grubuna sahibiz:
1 + 6 + 8 + 6 + 8 + 6 + 1 sipariş setleri
Ve (eşit olasılıkla) bir sayı seçmek için sekiz durumlu (3 kafalı grup veya 3 kuyruklu grup) olan grupları kullanabiliriz. Bu, 2'den 14'ünde * olur (2 ^ 5-14) = 36 vaka. Bu bize ile bırakır:
1 + 6 + 1 + 6 + 1 + 6 + 1 sipariş setleri
Başka bir (7'nci) ekstra jetonlu çevirme ile sekiz olası farklı sıralanmamış kafa ve kuyruk kümesi için elimizde:
1 + 7 + 7 + 7 + 7 + 7 + 7 + 1 sıralı ayarlar
Ve (eşit olasılıkla) bir sayı seçmek için yedi durumlu grupları (tüm kuyruklar ve tüm kafalar hariç) kullanabiliriz. Bu 44 vakadan 42'sinde meydana gelir. Bu bize ile bırakır:
1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 sıralı setleri
(buna devam edebiliriz, ancak sadece 49. adımda bu bize bir avantaj sağlıyor)
Yani bir sayı seçme olasılığı
- 5 flişte 1432=716
- 6 çırpıda 9161436=732
- saat 7'de 11324244=231704
- 7 klipte değil 1−716−732−231704=227
Bu, bir turdaki sayılar için beklenti değerini yapar, başarı olması şartına bağlıdır ve p = 0.5:
5⋅716+6⋅732+7⋅231704=5.796875
Toplam çevirme sayısının beklenti değeri (başarılı oluncaya kadar), p = 0,5 olması koşuluyla şöyle olur:
( 5 ⋅ 716+ 6 ⋅ 732+ 7 ⋅ 231704) 2727- 2= 539=5.88889
NcAdams tarafından verilen cevap, bu durdurma kuralı stratejisinin bir çeşitlemesini kullanır (her seferinde iki yeni yazı turasıyla gelir), ancak tüm kopyaları en iyi şekilde seçmez.
Her iki madalyonun bir rakamı atacağı dengesiz bir seçim kuralı olsa da, Clid'in cevabı da benzer olabilir, ancak eşit olasılıkla zorunlu olmayabilir (daha sonra madalyonun fişi sırasında tamir edilen bir tutarsızlık)
Diğer yöntemlerle karşılaştırma
Benzer bir prensip kullanan diğer yöntemler NcAdams ve AdamO tarafından kullanılan yöntemlerdir.
İlke : Belli sayıda kafa ve yazıdan sonra 1 ile 7 arasında bir sayı kararı verilir. Bir sonra, x bir sayıya neden olmaktadır her karar için çevirir sayısı, i bir sayı neden benzer eşit muhtemel karar vardır j (baş ve kuyruk ama sadece farklı bir sırayla aynı sayıda). Bazı kafa ve kuyruk serileri baştan başlamak için bir karar verebilir.
O an başlar ve kuyruklar 7 eşit olasılık dizileri için bir olasılık var gibi (mümkün olduğunca erken kararlar nedeniyle yöntemlerin böyle türü için buraya yerleştirilen bir sonra en verimli x -inci kapak, biz kullanabilirsiniz bir sayı hakkında karar vermek için onları ve bu davalardan biriyle karşılaşırsak daha fazla çevirmemize gerek kalmaz).
Bu, aşağıdaki resimde ve simülasyonda gösterilmektedir:
#### mathematical part #####
set.seed(1)
#plotting this method
p <- seq(0.001,0.999,0.001)
tot <- (5*7*(p^2*(1-p)^3+p^3*(1-p)^2)+
6*7*(p^2*(1-p)^4+p^4*(1-p)^2)+
7*7*(p^1*(1-p)^6+p^2*(1-p)^5+p^3*(1-p)^4+p^4*(1-p)^3+p^5*(1-p)^2+p^6*(1-p)^1)+
7*1*(0+p^7+(1-p)^7) )/
(1-p^7-(1-p)^7)
plot(p,tot,type="l",log="y",
xlab="p",
ylab="expactation value number of flips"
)
#plotting method by AdamO
tot <- (7*(p^20-20*p^19+189*p^18-1121*p^17+4674*p^16-14536*p^15+34900*p^14-66014*p^13+99426*p^12-119573*p^11+114257*p^10-85514*p^9+48750*p^8-20100*p^7+5400*p^6-720*p^5)+6*
(-7*p^21+140*p^20-1323*p^19+7847*p^18-32718*p^17+101752*p^16-244307*p^15+462196*p^14-696612*p^13+839468*p^12-806260*p^11+610617*p^10-357343*p^9+156100*p^8-47950*p^7+9240*p^6-840*p^5)+5*
(21*p^22-420*p^21+3969*p^20-23541*p^19+98154*p^18-305277*p^17+733257*p^16-1389066*p^15+2100987*p^14-2552529*p^13+2493624*p^12-1952475*p^11+1215900*p^10-594216*p^9+222600*p^8-61068*p^7+11088*p^6-1008*p^5)+4*(-
35*p^23+700*p^22-6615*p^21+39235*p^20-163625*p^19+509425*p^18-1227345*p^17+2341955*p^16-3595725*p^15+4493195*p^14-4609675*p^13+3907820*p^12-2745610*p^11+1592640*p^10-750855*p^9+278250*p^8-76335*p^7+13860*p^6-
1260*p^5)+3*(35*p^24-700*p^23+6615*p^22-39270*p^21+164325*p^20-515935*p^19+1264725*p^18-2490320*p^17+4027555*p^16-5447470*p^15+6245645*p^14-6113275*p^13+5102720*p^12-3597370*p^11+2105880*p^10-999180*p^9+371000
*p^8-101780*p^7+18480*p^6-1680*p^5)+2*(-21*p^25+420*p^24-3990*p^23+24024*p^22-103362*p^21+340221*p^20-896679*p^19+1954827*p^18-3604755*p^17+5695179*p^16-7742301*p^15+9038379*p^14-9009357*p^13+7608720*p^12-
5390385*p^11+3158820*p^10-1498770*p^9+556500*p^8-152670*p^7+27720*p^6-2520*p^5))/(7*p^27-147*p^26+1505*p^25-10073*p^24+49777*p^23-193781*p^22+616532*p^21-1636082*p^20+3660762*p^19-6946380*p^18+11213888*p^17-
15426950*p^16+18087244*p^15-18037012*p^14+15224160*p^13-10781610*p^12+6317640*p^11-2997540*p^10+1113000*p^9-305340*p^8+55440*p^7-5040*p^6)
lines(p,tot,col=2,lty=2)
#plotting method by NcAdam
lines(p,3*8/7/(p*(1-p)),col=3,lty=2)
legend(0.2,500,
c("this method calculation","AdamO","NcAdams","this method simulation"),
lty=c(1,2,2,0),pch=c(NA,NA,NA,1),col=c(1,2,3,1))
##### simulation part ######
#creating decision table
mat<-matrix(as.numeric(intToBits(c(0:(2^5-1)))),2^5,byrow=1)[,c(1:12)]
colnames(mat) <- c("b1","b2","b3","b4","b5","b6","b7","sum5","sum6","sum7","decision","exit")
# first 5 rolls
mat[,8] <- sapply(c(1:2^5), FUN = function(x) {sum(mat[x,1:5])})
mat[which((mat[,8]==2)&(mat[,11]==0))[1:7],12] = rep(5,7) # we can stop for 7 cases with 2 heads
mat[which((mat[,8]==2)&(mat[,11]==0))[1:7],11] = c(1:7)
mat[which((mat[,8]==3)&(mat[,11]==0))[1:7],12] = rep(5,7) # we can stop for 7 cases with 3 heads
mat[which((mat[,8]==3)&(mat[,11]==0))[1:7],11] = c(1:7)
# extra 6th roll
mat <- rbind(mat,mat)
mat[c(33:64),6] <- rep(1,32)
mat[,9] <- sapply(c(1:2^6), FUN = function(x) {sum(mat[x,1:6])})
mat[which((mat[,9]==2)&(mat[,11]==0))[1:7],12] = rep(6,7) # we can stop for 7 cases with 2 heads
mat[which((mat[,9]==2)&(mat[,11]==0))[1:7],11] = c(1:7)
mat[which((mat[,9]==4)&(mat[,11]==0))[1:7],12] = rep(6,7) # we can stop for 7 cases with 4 heads
mat[which((mat[,9]==4)&(mat[,11]==0))[1:7],11] = c(1:7)
# extra 7th roll
mat <- rbind(mat,mat)
mat[c(65:128),7] <- rep(1,64)
mat[,10] <- sapply(c(1:2^7), FUN = function(x) {sum(mat[x,1:7])})
for (i in 1:6) {
mat[which((mat[,10]==i)&(mat[,11]==0))[1:7],12] = rep(7,7) # we can stop for 7 cases with i heads
mat[which((mat[,10]==i)&(mat[,11]==0))[1:7],11] = c(1:7)
}
mat[1,12] = 7 # when we did not have succes we still need to count the 7 coin tosses
mat[2^7,12] = 7
draws = rep(0,100)
num = rep(0,100)
# plotting simulation
for (p in seq(0.05,0.95,0.05)) {
n <- rep(0,1000)
for (i in 1:1000) {
coinflips <- rbinom(7,1,p) # draw seven numbers
I <- mat[,1:7]-matrix(rep(coinflips,2^7),2^7,byrow=1) == rep(0,7) # compare with the table
Imatch = I[,1]*I[,2]*I[,3]*I[,4]*I[,5]*I[,6]*I[,7] # compare with the table
draws[i] <- mat[which(Imatch==1),11] # result which number
num[i] <- mat[which(Imatch==1),12] # result how long it took
}
Nturn <- mean(num) #how many flips we made
Sturn <- (1000-sum(draws==0))/1000 #how many numbers we got (relatively)
points(p,Nturn/Sturn)
}
daha iyi karşılaştırma için p∗(1−p) tarafından ölçeklendirilen başka bir resim :
Bu yayında açıklanan yöntemleri ve yorumları karşılaştırarak yakınlaştır
'7. adımın şartlı atlanması' erken durma kuralında yapılabilecek hafif bir gelişmedir. Bu durumda, 6'ncı fişlerden sonra eşit olasılıktaki grupları seçemezsiniz. Eşit olasılıklara sahip 6 grubunuz ve biraz farklı olasılıklara sahip 1 grubunuz var (bu son grup için, 6 kafa veya kuyruk varken bir fazladan fazla zaman ayırmanız gerekir ve 7 kafa veya 7 yazıyı attığınız için sonuçta aynı olasılıkla)
StackExchangeStrike tarafından yazıldı.