Đâ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 =⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢⎢000⋮0001 / n00⋮0001 / n1 / ( n - 1 )0⋮000⋯⋯⋯⋱⋯⋯⋯1 / n1 / ( n - 1 )1 / ( n - 2 )⋮0001 / n1 / ( n - 1 )1 / ( n - 2 )⋮1 / 2001 / n1 / ( n - 1 )1 / ( n - 2 )⋮1 / 211⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥⎥.
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
T≡ phút { t ∈ N |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à:n1 ⩽ T⩽ n
FT( t ) = P ( T⩽ t ) = 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 / n[Pt]0 , n- [Pt - 1]0 , ncho t = 1 ,cho 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 R
dưới dạng dfrog
hà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ố T
và 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
#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)'));