Tổng quát hóa trường hợp được mô tả bởi Dilip Sarwate
Một số phương pháp được mô tả trong các câu trả lời khác sử dụng sơ đồ trong đó bạn ném một chuỗi xu trong một 'lượt' và tùy thuộc vào kết quả bạn chọn một số trong khoảng từ 1 đến 7 hoặc loại bỏ lượt và ném lại.n
Bí quyết là tìm ra sự mở rộng các khả năng có nhiều kết quả gồm 7 kết quả với cùng xác suất và khớp các kết quả này với nhau.pk(1−p)n−k
Vì tổng số kết quả không phải là bội số của 7, chúng tôi có một vài kết quả mà chúng tôi không thể chỉ định cho một số và có một số xác suất mà chúng tôi cần loại bỏ kết quả và bắt đầu lại.
Trường hợp sử dụng 7 lần lật đồng xu mỗi lượt
Theo trực giác chúng ta có thể nói rằng việc gieo xúc xắc bảy lần sẽ rất thú vị. Vì chúng ta chỉ cần loại bỏ 2 trong số khả năng. Cụ thể, 7 lần đầu và 0 lần đầu.27
Đối với tất cả các khả năng , luôn có bội số của 7 trường hợp có cùng số lượng đầu. Cụ thể là 7 trường hợp có 1 đầu, 21 trường hợp có 2 đầu, 35 trường hợp có 3 đầu, 35 trường hợp có 4 đầu, 21 trường hợp có 5 đầu và 7 trường hợp có 6 đầu.27−2
Vì vậy, nếu bạn tính số (loại bỏ 0 đầu và 7 đầu)X=∑k=17(k−1)⋅Ck
với các biến phân phối Bernoulli (giá trị 0 hoặc 1), thì X modulo 7 là biến đồng nhất với bảy kết quả có thể.Ck
So sánh số lần lật đồng xu khác nhau mỗi lượt
Câu hỏi vẫn là số lượng cuộn tối ưu mỗi lượt sẽ là bao nhiêu. Lăn nhiều xúc xắc hơn mỗi lượt sẽ khiến bạn tốn nhiều tiền hơn, nhưng bạn giảm khả năng phải quay lại.
Hình ảnh dưới đây cho thấy một tính toán thủ công cho một số lần lật đồng xu đầu tiên mỗi lượt. (có thể có một giải pháp phân tích, nhưng tôi tin rằng có thể an toàn khi nói rằng một hệ thống với 7 lần lật đồng xu cung cấp phương pháp tốt nhất liên quan đến giá trị kỳ vọng cho số lần lật đồng xu cần thiết)
# 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)
}
Sử dụng quy tắc dừng sớm
lưu ý: các tính toán dưới đây, đối với giá trị kỳ vọng của số lần lật, đối với một đồng xu công bằng , nó sẽ trở thành một mớ hỗn độn để làm điều này cho các khác nhau , nhưng nguyên tắc vẫn giữ nguyên (mặc dù cách giữ sổ khác nhau của trường hợp là cần thiết)p=0.5p
Chúng ta có thể chọn các trường hợp (thay vì công thức cho ) sao cho chúng ta có thể dừng lại sớm hơn.X
Với 5 lần lật đồng xu, chúng tôi có sáu bộ đầu và đuôi không có thứ tự khác nhau:
1 + 5 + 10 + 10 + 5 + 1 bộ đã đặt hàng
Và chúng ta có thể sử dụng các nhóm có mười trường hợp (đó là nhóm có 2 đầu hoặc nhóm có 2 đuôi) để chọn (với xác suất bằng nhau) một số. Điều này xảy ra trong 14 trên 2 ^ 5 = 32 trường hợp. Điều này để lại cho chúng tôi:
1 + 5 + 3 + 3 + 5 + 1 bộ đã đặt hàng
Với một lần lật thêm (6) đồng xu, chúng ta có bảy bộ đầu và đuôi không có thứ tự khác nhau có thể:
1 + 6 + 8 + 6 + 8 + 6 + 1 bộ đã đặt hàng
Và chúng ta có thể sử dụng các nhóm có tám trường hợp (đó là nhóm có 3 đầu hoặc nhóm có 3 đuôi) để chọn (với xác suất bằng nhau) một số. Điều này xảy ra trong 14 trên 2 * (2 ^ 5-14) = 36 trường hợp. Điều này để lại cho chúng tôi:
1 + 6 + 1 + 6 + 1 + 6 + 1 bộ đã đặt hàng
Với một lần lật thêm 7 (7) khác, chúng tôi có tám bộ đầu và đuôi không có thứ tự khác nhau có thể:
1 + 7 + 7 + 7 + 7 + 7 + 7 + 1 bộ đã đặt hàng
Và chúng ta có thể sử dụng các nhóm với bảy trường hợp (tất cả ngoại trừ tất cả các đuôi và tất cả các trường hợp đầu) để chọn (với xác suất bằng nhau) một số. Điều này xảy ra trong 42 trên 44 trường hợp. Điều này để lại cho chúng tôi:
1 + 0 + 0 + 0 + 0 + 0 + 0 + 1 bộ được đặt hàng
(chúng ta có thể tiếp tục điều này nhưng chỉ trong bước thứ 49, điều này mới mang lại lợi thế cho chúng ta)
Vì vậy, xác suất để chọn một số
- tại 5 lần lật là1432=716
- tại 6 lần lật là9161436=732
- tại 7 lần lật là11324244=231704
- không trong 7 lần lật là1−716−732−231704=227
Điều này làm cho giá trị kỳ vọng cho số lần lật trong một lượt, có điều kiện là có thành công và p = 0,5:
5⋅716+6⋅732+7⋅231704=5.796875
Giá trị kỳ vọng cho tổng số lần lật (cho đến khi có thành công), có điều kiện p = 0,5, trở thành:
(5⋅716+6⋅732+7⋅231704)2727−2=539=5.88889
Câu trả lời của NcAdams sử dụng một biến thể của chiến lược quy tắc dừng này (mỗi lần đưa ra hai lần lật đồng xu mới) nhưng không tối ưu chọn ra tất cả các lần lật.
Câu trả lời của Clid cũng có thể tương tự mặc dù có thể có một quy tắc lựa chọn không đồng đều rằng mỗi hai đồng xu lật một số có thể được chọn nhưng không nhất thiết phải có xác suất bằng nhau (sự khác biệt đang được sửa chữa trong lần lật đồng xu sau)
So sánh với các phương pháp khác
Các phương pháp khác sử dụng một nguyên tắc tương tự là phương pháp của NcAdams và AdamO.
Nguyên tắc là : Một quyết định cho một số từ 1 đến 7 được đưa ra sau một số đầu và đuôi nhất định. Sau một số flips, đối với mỗi quyết định dẫn đến một số có một tương tự, đều có thể xảy ra, quyết định dẫn đến một số (cùng một số người đứng đầu và đuôi nhưng chỉ theo một thứ tự khác nhau). Một số loạt đầu và đuôi có thể dẫn đến quyết định bắt đầu lại.xij
Đối với loại phương pháp như vậy, phương pháp được đặt ở đây là hiệu quả nhất vì nó đưa ra quyết định càng sớm càng tốt (ngay khi có khả năng 7 chuỗi xác suất bằng nhau của đầu và đuôi, sau khi lật , chúng ta có thể sử dụng họ đưa ra quyết định về một con số và chúng ta không cần phải lật thêm nếu chúng ta gặp phải một trong những trường hợp đó).x
Điều này được thể hiện bằng hình ảnh và mô phỏng dưới đây:
#### 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)
}
một hình ảnh khác được chia tỷ lệ bởi để so sánh tốt hơn:p∗(1−p)
phóng to so sánh các phương pháp được mô tả trong bài viết này và ý kiến
'bỏ qua điều kiện của bước thứ 7' là một cải tiến nhỏ có thể được thực hiện theo quy tắc dừng sớm. Trong trường hợp này, bạn chọn không phải nhóm có xác suất bằng nhau sau lần lật thứ 6. Bạn có 6 nhóm với xác suất bằng nhau và 1 nhóm có xác suất hơi khác nhau (đối với nhóm cuối cùng này, bạn cần lật thêm một lần nữa khi bạn có 6 đầu hoặc đuôi và vì bạn loại bỏ 7 đầu hoặc 7 đuôi, bạn sẽ kết thúc với cùng một xác suất sau tất cả)
Được viết bởi StackExchangeStrike