Vấn đề ếch (câu đố trong video YouTube)


8

Có một câu đố thú vị trong video YouTube Bạn có thể giải quyết vấn đề Ếch không? . Tôi sẽ cố gắng đưa ra một công thức tương đương ở đây.

Một con ếch ở một bên ao và muốn ở phía bên kia. Có lá phía trước xếp thành hàng, lá thứ nằm ở đầu kia của ao và là đích đến. Bất kể vị trí của con ếch bất cứ lúc nào, nó sẽ chỉ đi về phía trước và xác suất để hạ cánh trên một trong những chiếc lá còn lại phía trước nó (bao gồm cả đích đến) là đồng nhất. Vì vậy, ví dụ: nếu có 10 lá phía trước, có khả năng rằng nó sẽ hạ cánh trên bất kỳ lá nào trong số chúng.nn110

Giá trị dự kiến ​​cho số lần nhảy nó sẽ đưa con ếch đến lá đích là gì? Câu trả lời không thể là một biểu thức đệ quy.

Tôi nghĩ rằng tôi có một giải pháp, tôi sẽ báo cáo nó như một câu trả lời dưới đây.

Câu trả lời:


2

Đây là một vấn đề thú vị và polettix đưa ra giải pháp cho vấn đề trước mắt là tìm ra số lần nhảy dự kiến. Tôi sẽ cố gắng xem xét vấn đề rộng lớn hơn về phân phối thời gian cần thiết để đi đến miếng lily cuối cùng. Phân tích rộng hơn này cho phép chúng tôi tìm thấy xác suất của bất kỳ trạng thái nào và bất kỳ thời điểm nào của phân phối.

Phân tích này có thể được đóng khung như là một vấn đề của việc tìm phân phối "thời gian chạm" cho trạng thái hấp thụ của chuỗi Markov rời rạc. Việc lập trình chuỗi Markov này trong phần mềm thống kê tương đối đơn giản và trích xuất phân phối kết quả của các lần đánh, do đó đưa ra một giải pháp hoàn chỉnh cho Vấn đề Ếch.


Thiết lập vấn đề dưới dạng chuỗi Markov: Để thiết lập vấn đề, chúng tôi sử dụng các trạng thái , trong đó trạng thái là ếch trên bờ sông và các trạng thái còn lại dành cho ếch đang ở trên miếng lót lily tương ứng. Chúng tôi để là quá trình ngẫu nhiên trong bài toán, với con ếch đang ở lily-pad ngay sau khi nhảy . Quá trình này là một chuỗi Markov rời rạc đơn điệu nghiêm ngặt với ma trận xác suất chuyển tiếp :x=0,1,2,...,nx=01,...,n{Xt|t=0,1,2,3,...}Xtt(n+1)×(n+1)

P=[01/n1/n1/n1/n1/n001/(n1)1/(n1)1/(n1)1/(n1)0001/(n2)1/(n2)1/(n2)00001/21/2000001000001].

Số lần nhảy đến pad lily cuối cùng là thời gian nhấn cho trạng thái , đó là:n

Tmin{tN|Xt=n}.

Mục tiêu của chúng tôi sẽ là tìm hàm khối xác suất cho biến ngẫu nhiên , cung cấp một giải pháp đầy đủ cho vấn đề ếch (nghĩa là nó mô tả đầy đủ hành vi của số lần nhảy tới pad-pad cuối cùng).T


Tìm hàm khối lượng xác suất: Do ếch tiến triển ít nhất một lily-pad trong mỗi lần nhảy, nên phải mất tối đa lần nhảy để đến được lily-pad cuối cùng, vì vậy chúng ta phải có . Hàm phân phối tích lũy cho lần này là:n1Tn

FT(t)=P(Tt)=P(Xt=n)=[Pt]0,n.

Do đó, hàm khối lượng xác suất cho thời gian là:

pT(t)={1/nfor t=1,[Pt]0,n[Pt1]0,nfor t>1.

Hàm khối lượng này mô tả đầy đủ sự phân bố thời gian để con ếch đến được miếng lily cuối cùng, và do đó nó có thể được coi là một giải pháp hoàn chỉnh cho vấn đề Ếch. Để tạo điều kiện tính toán, chúng ta có thể lập trình phân phối này Rdưới dạng dfroghàm. Đây là một hàm vectơ tạo ra các giá trị từ hàm khối xác suất cho một vectơ đối số Tvà tham số n.

dfrog <- function(n, T = 1:n) {

#Create transition probability matrix
P <- matrix(0, nrow = n+1, ncol = n+1);
for (i in 1:n) { 
for (j in i:n) { 
    P[i, j+1] <- 1/(n+1-i);  } }
P[n+1, n+1] <- 1;

#Generate CDF and PMF vectors
PP  <- P;
CDF <- rep(0, n);
for (t in 1:n) {   
    CDF[t] <- PP[1, n+1];
    PP <- PP %*% P; }
PMF <- diff(c(0, CDF));

#Generate output vector
OUT <- rep(0, length(T));
for (i in 1:length(T)) { OUT[i] <- PMF[T[i]]; }

OUT; }

Chúng ta có thể sử dụng hàm này để tạo và vẽ đồ thị hàm xác suất. Biểu đồ dưới đây cho thấy sự phân bố số lần nhảy khi có lily-pad. Có thể thấy, ếch thường sẽ thực hiện 3-4 lần nhảy để đến được miếng lily cuối cùng trong trường hợp này. n=20

nhập mô tả hình ảnh ở đây

#Load ggplot and set theme
library(ggplot2);
THEME <- theme(plot.title    = element_text(hjust = 0.5, size = 14, face = 'bold'),
               plot.subtitle = element_text(hjust = 0.5, face = 'bold'));

#Plot the PMF
n    <- 20;
DATA <- data.frame(Jumps = 1:n, Probability = dfrog(n));
ggplot(aes(x = Jumps, y = Probability), data = DATA) + 
    geom_bar(stat = 'identity', fill = 'darkgreen') +
    THEME +
    ggtitle('PMF of number of jumps to last lily-pad') +
    labs(subtitle = paste0('(Frog problem with n = ', n, ' lily-pads)'));

2

Thay vì sử dụng mối quan hệ đệ quy cho số dự kiến chúng ta cũng có thể thử một cách tiếp cận cơ học hơn bằng cách tính toán mọi con đường mà ếch có thể đi và phân phối xác suất của vị trí của ếch sau khi nhảy.Jn=Jn1+1nk

Điều này có thể được tính toán nhanh chóng bằng chuỗi Markov.

# stochastic Matrix
M <- pracma::Toeplitz(c(0,rep(1,10)),rep(0,11)) / c(1,1:10) 
M[1,1] <- 1                                               

# positions of frogs after k steps
V <- c(rep(0,10),1)
Vm <- sapply(0:10, FUN = function(k) V %*% (M %^% k))

# mean number of steps by computing 1-F(0)
sum(1-Vm[1,])

tặng2.928968

Phân phối khối lượng, , cho xác suất ở khoảng cách từ 'lá kết thúc' trong bước thứ sẽ giống như sau:p(x,k)xk

nhập mô tả hình ảnh ở đây


Phương pháp này có một nhược điểm. Không dễ để có được kết quả quyến rũ cuối cùng là giá trị kỳ vọng cho số bước bằng với số điều hòa thứ n .k=1n1/k

Trong các ý kiến ​​tôi đề xuất rằng các phân phối này sẽ giống như các hàm đa thức. Tuy nhiên điều đó là sai. Nó phức tạp hơn.p(x,k)

Phân phối theo mối quan hệ:

p(x,k)=y=x+1Np(y,k1)j

Trong đó là tổng xác suất cho vị trí của ếch trong bước thứ và là số lượng lá (tổng quát từ ). Để bắt đầu mối quan hệ này, chúng tôi sử dụng .p(x,k)(k1)NN=10p(N,0)=1

Điều này có thể được mở rộng như

p(x,k)=1Nl1=x+1Nkl2=l1+1Nk+1...lk=lk1+1N11l1l2...lk

đó là một số loại khái quát của số hài.

Bạn có thể mô tả nó nhỏ gọn hơn như

p(x,k)=1NSSk,[x,...,N1]aS1a

nơi là tổng hợp trên tất cả các k-tập con trong , tập hợp tất cả k-tập hợp con của , và sản phẩm là trên tất cả các số trong nhóm . Chẳng hạn, một tập hợp con sẽ biểu thị rằng con ếch đã nhảy từ vị trí 10 đến 7 đến 5 và đến 3. Xác suất để con ếch đi theo con đường này là .SSk,[x,...,N1][x,...,N1]aS{3,5,7}110753

Tôi không chắc chắn làm thế nào để tiếp tục từ đây để có được kết quả cuối cùng ... Tôi tưởng tượng bạn có thể sử dụng một số mối quan hệ đệ quy.


1

Chúng tôi sẽ gọi là giá trị dự kiến ​​cho các bước nhảy khi có lá phía trước. Chúng tôi cũng đặt , phù hợp với thực tế là nếu con ếch không có lá phía trước, nó cần thực hiện chính xác lần nhảy để đến đích.JnnJ0= =00

Chúng tôi sẽ đặt tên / đánh số lá theo khoảng cách của chúng đến đích. Vì vậy, đích đến sẽ là lá , cái ngay trước và cứ thế lên đến lá , đó là cái trước con ếch. Có tổng số lá và xác suất để nhảy lên bất kỳ lá nào trong số chúng có một bước nhảy là theo chỉ dẫn câu đố.01n-1n1n

Khi ếch thực hiện bước nhảy đầu tiên này, nó sẽ hạ cánh trên lá , với và từ thời điểm đó, giá trị dự kiến ​​của các bước nhảy còn lại sẽ là . Xem xét rằng các sự kiện này là loại trừ lẫn nhau, chúng tôi nhận được như sau:kk{0,...n-1}Jk

Jn= =Σk= =0n-11n(1+Jk)

trong đó đại diện cho bước nhảy vọt đầu tiên để đạt đến vị trí . Vì có phần tử trong tổng, nên nó có thể được sắp xếp lại thành:1kn

Jn= =1+1nΣk= =0n-1Jk

đó thực sự là một chút quá đệ quy . Với các số liệu đơn giản, chúng ta có thể sắp xếp lại nó như sau:

n(Jn-1)= =Σk= =0n-1Jk

Mối quan hệ này là chung chung và cũng có thể được viết lại bằng thay vì :n-1n

(n-1)(Jn-1-1)= =Σk= =0n-2Jk

Trừ đi hai mối quan hệ chúng ta có được:

n(Jn-1)-(n-1)(Jn-1-1)= =Σk= =0n-1Jk-Σk= =0n-2Jk= =Jn-1

đó là:

n(Jn-1)= =(n-1)(Jn-1-1)+Jn-1= =nJn-1-(n-1)
Jn-1= =Jn-1-n-1n
Jn= =Jn-1+1n

Vẫn đệ quy, nhưng ít nhất phần tử thứ được biểu thị dưới dạng phần tử thứ .nn-1

Bây giờ xem xét rằng mối quan hệ ở trên có thể được thu gọn thành:J0= =0

Jn= =Σk= =1n1k

đó là câu trả lời cho câu đố


2
Bạn cũng có thể suy luận ngắn hơn và trực giác hơn: con ếch có lá phía trước có cùng lựa chọn trước mặt nó là con ếch có đi trước cộng với tùy chọn mà trước tiên nó cần thực hiện thêm một bước (đáp xuống đầu tiên để lại trước mặt anh ta mà con ếch trước mặt anh ta không có) với xác suất . Do đó, có thể được suy luận trực tiếp. nn-11/nJn= =Jn-1+1/n
Sextus Empiricus

1
Và bây giờ làm câu đố tương tự khi con ếch cũng có thể ở cùng một chỗ.
Sextus Empiricus

1
Khi ếch cũng có thể lùi một bước thì bạn có dẫn đến
Jn= =Jn-1*(n-1)/(n+1)+(Jn+1)/(n+1)+(Jn+1+1)/(n+1)
Jn+1= =nJn-(n-1)Jn-1
Sextus Empiricus

1
Phương trình cuối cùng nên có trong mệnh giá thay vìkn
L. Scott Johnson

3
@whuber thực tế là biểu thức cuối cùng yêu cầu một quá trình lặp lại lấy không nhất thiết làm cho nó có quan hệ lặp lại (ví dụ: trong bài viết bạn đã liên kết, mối quan hệ lặp lại được chỉ định rõ ràng là ). Bạn cũng có thể quyết định sắp xếp lại các điều khoản trong tổng số khi bạn thấy phù hợp, trong khi điều này sẽ không thể thực hiện được bằng cách tận dụng mối quan hệ lặp lại một mình. Ôi(n)Hn+1= =Hn+1n+1
Polettix

1

Giống như Martijn Weterings, tôi đã thử phương pháp "tính toán tất cả các khả năng".

Khi bắt đầu, ếch có lựa chọn với mỗi xác suất . Sau đó, các lựa chọn còn lại phụ thuộc vào lựa chọn ban đầu. Nhưng tập hợp các xác suất của các bước còn lại đủ dễ thấy: đó là các đối ứng của Bộ nguồn trên .n1n{1,...,n-1}

Nghĩa là, với , xác suất của mỗi bước là (tính tương hỗ):n= =3

{3} - một lần nhảy 3
{3, 1} - bước nhảy 2 (với xác suất 1/3) sau đó là bước nhảy 1 (với xác suất 1/1)
{3, 2} - 1 rồi 2
{ 3, 2, 1} - 1 rồi 1 rồi 1

Giá trị mong đợi của các giá trị này chỉ là kích thước của tập hợp chia cho sản phẩm của các phần tử của tập hợp.

Vì mỗi bộ luôn bắt đầu bằng , chúng tôi di chuyển nó ra khỏi tổng.n

Số lần nhảy dự kiến ​​để vượt qua lá thứ n là:

1nΣxP({1,...,n-1})|x|+1Πx

Tôi không chắc cách tiếp cận nào có thể được sử dụng để đơn giản là biểu mẫu này vào biểu mẫu , nhưng sự tương đương của hai kiểm tra cho tôi đã thử ( 2,3,10,20)

Σk= =1n1k
n

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.