删除wallet里面登机牌_登机牌丢失问题

删除wallet里面登机牌

On a sold-out flight, 100 people line up to board the plane. The first passenger in the line has lost his boarding pass but was allowed in regardless. He takes a random seat. Each subsequent passenger takes their assigned seat if available, or a random unoccupied seat, otherwise.What is the probability that the last passenger to board the plane finds their seat unoccupied?

在售罄的航班上,有100人排队等候登机。 排队的第一位乘客丢失了登机牌,但无论如何都被允许进入。 他随便坐。 如果有空位,则其后每位乘客都将坐上他们分配的座位,否则将坐一个随机的空座位,最后登机的乘客发现自己的座位没有座的可能性是多少?

If your first instinct is to map out the possibilities with a smaller number of people boarding the plane, I invite you to take a moment and try the puzzle out for yourself. This approach resulted in a great deal of suffering on my end, and I wouldn’t want to deprive you of that experience.

如果您的第一个直觉是在登机的人较少的情况下确定各种可能性,那么我请您花点时间为自己解决难题。 这种方法给我带来了很大的痛苦,我不想剥夺您的经验。

Alternatively, read on for a Monte Carlo simulation and an explanation of the analytic solution.

另外,请继续阅读以进行蒙特卡洛模拟和解析解的说明。

蒙特卡罗模拟 (Monte Carlo Simulation)

Annoyed at my failure to manually solve the problem, I quickly typed out a messy Monte Carlo simulation in Python:

由于无法手动解决问题而感到恼火,我很快用Python输入了一个混乱的蒙特卡洛模拟:

import random
import numpy as npairplane = []#positive indicates that the criteria (last passenger reaches their seat) is fulfilled & vice versapositive = 0
negative = 0#constructing airplane
for i in range (1,101):
airplane.append(i)def simulate():

global airplane
global positive
global negative#first passenger
airplane.remove(np.random.choice(airplane))#subsequent passengers
for i in range (2,100):
if i in airplane:
airplane.remove(i)
else:
airplane.remove(np.random.choice(airplane))if 100 in airplane:
positive += 1
else:
negative += 1airplane = []
for i in range (1,101):
airplane.append(i)#running 100k trials
for i in range (0,100000):
simulate()print(positive/(positive+negative)*100)Output: 50.076

By Monte Carlo, the probability of the last passenger finding his seat is about 50%. I found it surprising that the probability was this high, considering that it represents the last passenger sitting in one particular seat in a 100-person plane.

根据蒙特卡洛,最后一位乘客找到座位的可能性约为50%。 考虑到它代表了坐着100人的飞机上一个特定座位的最后一位乘客,我发现这种可能性如此之高令人惊讶。

This is yet another probability puzzle where our intuition fails us. It reminds me specifically of the Birthday Paradox, where most people also tend to vastly underestimate the probability of a certain outcome as a result of deeply-flawed mental calculations.

这是我们的直觉使我们失败的另一个概率难题。 它特别让我想起了生日悖论 ,因为大多数人也往往由于心理计算的严重缺陷而大大低估了某种结果的可能性。

分析解决方案 (Analytic Solution)

The real probability is exactly 1/2. Here’s why:

实际概率恰好是1/2 。 原因如下:

Image for post
Photo by Jonathan Farber on Unsplash
乔纳森·法伯 ( Jonathan Farber)在Unsplash上拍摄的照片

From this point forward, I refer to passengers and their assigned seats in order of entry, such that the first passenger to board is Passenger 1 and the last to board is Passenger 100. Similarly, Seat 1 is the assigned seat of Passenger 1, and so forth.

从这一点开始,我将按照进入的顺序指代乘客及其分配的座位,这样第一个登机的乘客就是乘客1,最后一个登机的乘客是乘客100。类似地,座位1是乘客1的分配座位,并且等等。

Fact: Passenger 100 will sit in either Seat 100 (his assigned seat) or Seat 1.

事实:乘客100将坐在座位100(他指定的座位)或座位1中。

I best understand this observation through the perspective of each passenger boarding in-between the first and last. There are two possibilities for Passengers 2–99.

我从头一个和最后一个之间的每个乘客登机的角度来最好地理解这一发现。 2–99号旅客有两种可能性。

  1. The passenger’s assigned seat is empty. They sit in that seat.

    乘客分配的座位空着。 他们坐在那个座位上。
  2. The passenger’s assigned seat is occupied. They sit in some other seat at random.

    乘客分配的座位已被占用。 他们随意地坐在其他座位上。

After each of these passengers takes a seat on the plane, it is necessarily true that their assigned seat is occupied. Either it was previously unoccupied (option 1 above) and they sit in it, or it was already occupied (option 2).

这些乘客中的每一个在飞机上坐下之后,一定要占用他们分配的座位。 可能是以前没有人住过(上面的选项1),他们坐在了里面,或者已经有人住过了(选项2)。

Before the last passenger boards the plane, the assigned seats of Passengers 2–99 are occupied. At this point, 99 people (including Passenger 1) have taken a seat, meaning that only one seat remains vacant.

在最后一位乘客登机之前,已分配了2–99位乘客的指定座位。 此时,有99人(包括乘客1)已经就座,这意味着只有一个座位空缺。

Since there is one seat left and Seats 2–99 are guaranteed to be occupied, the vacant seat must be Seat 1 or Seat 100. It is impossible for both Seat 1 and Seat 100 to be occupied before the last passenger boards, because that would mean all 100 seats on the plane are occupied by only 99 passengers.

由于只剩一个座位,并且保证要占用2至99座位,因此空座位必须是1或100座位。在最后一个乘客登机牌之前,不可能同时占用1和100座位,因为那样会表示飞机上的所有100个座位都只有99位乘客。

Fact: there is an equal probability of the last passenger sitting in Seat 1 and Seat 100.

事实:最后一位乘客坐在1号座位和100号座位的机率相等。

By the time the last passenger boards, the outcome of the lost boarding pass problem is already determined, as there is only one seat for them to choose. We must therefore look at the decisions faced by Passengers 1–99.

到最后一个乘客登机时,已经确定了丢失登机牌问题的结果,因为他们只能选择一个座位。 因此,我们必须研究1–99号乘客面临的决策。

For Passenger 1, there is equal probability of choosing any of the 100 seats. By extension, the probability of him choosing his own assigned seat and the probability of him choosing the last passenger’s assigned seat are equal.

对于乘客1,选择100个座位中的任何一个的可能性均等。 通过扩展,他选择自己的分配座位的概率与他选择最后一个乘客的分配座位的概率相等。

The only way Passengers 2–99 sit in Seat 1 or Seat 100 is if their assigned seat is occupied. In this case, there is also an equal probability of sitting in any available seat.

2–99号乘客坐在1号或100号座位的唯一方法是,如果他们分配的座位被占用。 在这种情况下,坐在任何可用座位上的可能性也相等。

While both Seat 1 and Seat 100 are unoccupied, it is equally probable that either seat will be chosen. After one of these two seats is occupied, the other seat is guaranteed to remain unoccupied until the last passenger boards. The probability that Seat 100 is occupied by a previous passenger is 1/2.

虽然座位1和座位100均未占用,但同样有可能会选择其中一个座位。 在这两个座位中的一个座位被占用之后,另一个座位将保证在最后一个乘客登机之前保持空置。 前座乘客占用座位100的概率为1/2。

Therefore, the probability that the last passenger finds his seat unoccupied is also 1/2.

因此,最后一位乘客发现自己的座位未被占用的概率也为1/2。

Though I’m a very inexperienced coder, it was still much faster to solve the lost boarding pass problem using Monte Carlo via Python than it was to wrap my head around the analytic solution. I could say something here about the power of simulations in problem solving, but you’ve probably heard it before.

尽管我是一个非常缺乏经验的编码员,但是使用Monte Carlo通过Python解决登机牌丢失问题的速度要比把头放在分析解决方案上要快得多。 我可以在这里谈谈模拟在解决问题中的作用,但是您以前可能已经听说过。

Instead, I will publicly thank whoever came up with the idea of airlines being able to print boarding passes at the gate.

相反,我将公开感谢谁想到航空公司能够在登机口打印登机牌的想法。

资料来源 (Sources)

The lost boarding pass problem doesn’t have a massive online presence, though I was able to find versions with slightly different wordings here, here, and here.

丢失登机牌问题并没有在网上广泛使用,尽管我能够在这里 , 这里和这里找到措辞略有不同的版本。

翻译自: https://towardsdatascience.com/the-lost-boarding-pass-problem-2a17313b2d8a

删除wallet里面登机牌

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/388210.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PHP 备份还原 MySql 数据库

原生 PHP 备份还原 MySql 数据库 支持 MySql,PDO 两种方式备份还原 php5.5 以上的版本建议开启pdo扩展,使用 pdo 备份还原数据 备份文件夹 db_backup、import/log 文件要有读写权限环境版本 本人测试环境 php:5.5.38 /5.6.27-nts/7.0.12-nts; mysql: 5.5…

Java™ 教程(Queue接口)

Queue接口 Queue是在处理之前保存元素的集合&#xff0c;除了基本的Collection操作外&#xff0c;队列还提供额外的插入、删除和检查操作&#xff0c;Queue接口如下。 public interface Queue<E> extends Collection<E> {E element();boolean offer(E e);E peek();…

字符串操作截取后面的字符串_对字符串的5个必知的熊猫操作

字符串操作截取后面的字符串We have to represent every bit of data in numerical values to be processed and analyzed by machine learning and deep learning models. However, strings do not usually come in a nice and clean format and require preprocessing to con…

最新 Unity3D鼠标滑轮控制物体放大缩小 [

var s 1.0;function Update () {var cube GameObject.Find("Cube");if(Input.GetAxis("Mouse ScrollWheel")){s Input.GetAxis("Mouse ScrollWheel");cube.transform.localScaleVector3(1*s,1*s,1*s);}}

sublime-text3 安装 emmet 插件

下载sublime&#xff0c;http://www.sublimetext.com/ 安装package control &#xff1a;https://packagecontrol.io/ins... 这个地址需要翻墙&#xff0c;访问不了的可以看下图 import urllib.request,os,hashlib; h 6f4c264a24d933ce70df5dedcf1dcaee ebe013ee18cced0ef93d…

数据科学家访谈录 百度网盘_您应该在数据科学访谈中向THEM提问。

数据科学家访谈录 百度网盘A quick search on Medium with the keywords “Data Science Interview” resulted in hundreds of Medium articles to help guide the reader from what concepts are covered to even specific company interviews ranging from Tesla, Walmart, …

unity3d]鼠标点击地面人物自动走动(也包含按键wasdspace控制)

目录(?)[-] 一效果图二大概步骤 创建一个plane设置层为Terrain因为后面要判断是否点击的是这个层准备好人物模型并且将三个脚本拖放到人物上并且将动画文件也拖放好记得看前面提醒哦 ThirdPersonCamera相当于smoothflowThirdPersonController修改版mouseMoveContr鼠标点击人物…

uva 524(Prime Ring Problem UVA - 524 )

dfs练习题,我素数打表的时候ji了&#xff0c;一直没发现实际上是ji*i&#xff0c;以后可记住了。还有最后一行不能有空格。。。昏迷了半天 我的代码(紫书上的算法) #include <bits/stdc.h> using namespace std; int bk[110]; int num[110]; int vis[110]; int n; void d…

Web 开发基础

一、 Web 开发简介 最早的软件都是运行在大型机上的&#xff0c;软件使用者登陆到大型机上去运行软件。后来随着 PC 机的兴起&#xff0c;软件开始主要运行在桌面上&#xff0c;而数据库这样的软件运行在服务器端&#xff0c;这种 Client/Server 模式简称 CS 架构。随着互联网的…

power bi函数_在Power BI中的行上使用聚合函数

power bi函数Aggregate functions are one of the main building blocks in Power BI. Being used explicitly in measures, or implicitly defined by Power BI, there is no single Power BI report which doesn’t use some sort of aggregate functions.聚合功能是Power BI…

关于如何在Python中使用静态、类或抽象方法的权威指南

Python中方法的工作方式 方法是存储在类属性中的函数&#xff0c;你可以用下面这种方式声明和访问一个函数 >>> class Pizza(object):... def __init__(self, size):... self.size size... def get_size(self):... return self.size...>&…

广义估计方程估计方法_广义估计方程简介

广义估计方程估计方法A key assumption underpinning generalized linear models (which linear regression is a type of) is the independence of observations. In longitudinal data this will simply not hold. Observations within an individual (between time points) …

css二

结构性伪类:nth-child(index)系列1.:first-child2.:last-child3.nth-last-child(index)4.only-child :nth-of-type(index)系列1.first-of-type2.last-of-type3.nth-last-type(index)4.only-of-type :not伪类处理导航栏最后一个竖划线a:not(:last-of-type) :empty伪类 选中所有内…

Unity3d鼠标点击屏幕来控制人物的走动

今天呢&#xff0c;我们来一起实现一个在RPG中游戏中十分常见的功能&#xff0c;通过鼠标点击屏幕来控制人物的走动。首先来说一下原理&#xff0c;当我们点击屏幕时&#xff0c;我们按照一定的方法&#xff0c;将屏幕上的二维坐标转化为三维坐标&#xff0c;然后我们从摄像机位…

Java中的ReentrantLock和synchronized两种锁定机制的对比

2019独角兽企业重金招聘Python工程师标准>>> 多线程和并发性并不是什么新内容&#xff0c;但是 Java 语言设计中的创新之一就是&#xff0c;它是第一个直接把跨平台线程模型和正规的内存模型集成到语言中的主流语言。核心类库包含一个 Thread 类&#xff0c;可以用它…

10.15 lzxkj

几天前写的&#xff0c;忘了放了&#xff0c;在此填坑 10月16的题我出的不写题解了 lzxkj 题目背景 众所不周知的是&#xff0c; 酒店之王 xkj 一个经常迷失自我的人 有一天&#xff0c; 当起床铃再一次打响的时候&#xff0c; TA 用 O(1)的时间在 TA 那早就已经生锈的大脑中自…

大数定理 中心极限定理_中心极限定理:直观的遍历

大数定理 中心极限定理One of the most beautiful concepts in statistics and probability is Central Limit Theorem,people often face difficulties in getting a clear understanding of this and the related concepts, I myself struggled understanding this during my…

万恶之源 - Python数据类型二

列表 列表的介绍 列表是python的基础数据类型之一 ,其他编程语言也有类似的数据类型. 比如JS中的数 组, java中的数组等等. 它是以[ ]括起来, 每个元素用 , 隔开而且可以存放各种数据类型: lst [1,a,True,[2,3,4]]列表相比于字符串,不仅可以存放不同的数据类型.而且可…

230. Kth Smallest Element in a BST

Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.Note: You may assume k is always valid, 1 ≤ k ≤ BSTs total elements.Example 1: Input: root [3,1,4,null,2], k 13/ \1 4\2 Output: 1 Example 2: Input: root …

探索性数据分析(EDA)-不要问如何,不要问什么

数据科学 &#xff0c; 机器学习 (Data Science, Machine Learning) This is part 1 in a series of articles guiding the reader through an entire data science project.这是一系列文章的第1部分 &#xff0c;指导读者完成整个数据科学项目。 I am a new writer on Medium…