这是我所思熟虑并试图指出的问题。
共有100人:个人1、个人2、......人100。
选择随机人员进入房间。
另一步步步步入会议室的人根据最后走进会议室的人,任意选定其余人群。
更接近刚刚步行的人的人的个人更有可能被选中。 更远的个人的概率较低(概率分配不一定是不对称)
一旦一个人走进房间,他们就无法离开。
例如,如果17人步入房间,那么18人和16人就更愿意选择下班,而99人则选择下班的可能性较小。 这一可能性使你越走越了最后的人步入会议室。
这里是我写到的一个职能(https://math.stack Exchange.com/questions/4900283/randomly-ordering-people-waling-into-a-room):
calculate_probability <- function(S, L, x) {
S <- S[S != L]
if (!(x %in% S)) {
return(0)
}
numerator <- 1 / (abs(x - L) + 1)
denominator <- sum(1 / (abs(S - L) + 1))
probability <- numerator / denominator
return(probability)
}
# sanity check
S <- c(1:10)
L <- 8
x <- 8
probability <- calculate_probability(S, L, x)
print(probability)
# probabilities sum to 1
S <- c(1:10)
L <- 8
S <- S[S != L]
probabilities <- sapply(S, function(x) calculate_probability(S, L, x))
print(probabilities)
sum(probabilities)
我现在试图做以下工作:
- Imagine there are 100 people. A randomly selected person walks into the room.
- I want to use this function to simulate the other 99 people walking into the room
- I want to plot (i.e. ggplot2) the results (i.e. x-axis is the index and the y-axis is the number corresponding to each person)
最终结果应当包含按进入房间顺序排列的人员名单,如个人1、个人3、个人5、个人8、个人2等。
谁能帮助我这样做?