趣味概率问题:脑洞蒙特卡洛模型,来招聘!!!
生活随笔
收集整理的這篇文章主要介紹了
趣味概率问题:脑洞蒙特卡洛模型,来招聘!!!
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在微信公眾號中看到一個很有趣的題目:
假如你是一名人事經理,你要招聘一名數據分析師,目前有100名面試者,你該如何抉擇?
應聘流程:
這100人隨機排序,逐一面試,每當一位候選人面試完后,要么錄用,要么不選。如果選擇了他,不再考慮后面的人。你必須從中選擇一人,如果前99都看不中,必須選擇最后一人。那么你怎么保證自己最高概率錄取到能力最強的人
歐拉數:e
e^{i\pi}+1=0,含義是單位時間內,持續翻倍增長所能達到的極限值。如何理解?
比如:一個細胞單位時間24h可以分裂一次,那么24h后:
(1+1)^1=2
如果12h分裂一次,那么24h后:
(1+1/2)^2=2.25
如果24/n h內分裂一次,那么24h后:
(1+1/n)^n \to e
我們的問題答案就是100/e=37 ,pass掉前37人,從第38人開始選擇大于前37人能力的第一個人作為錄取者。
37%法則,我們通過實驗來證明一下:我們選擇100個應聘者,編號1-100。隨機打亂順序,按照37%法則選取,程序運行1w次后,我們看看結果。
#100個人招聘能力最好的人,怎么保證最大概率找到最合適的人才,只選一人,一旦選擇不考慮其他,如一直不選擇,選最后一位。import random #mport numpy as np #import itertools #import math import matplotlib.pyplot as plt from collections import defaultdictnumber = 100 n=100000 def generate(n):dict=defaultdict()L=[j for j in range(1,number+1)]for i in range(n):random.shuffle(L)mid=int(number*0.37)L_left=L[:mid]L_right=L[mid:]best_out=max(L_left)choose = choose1(best_out,L_right)if choose in dict:dict[choose]=dict[choose]+1else:dict[choose]=1return dictdef choose1(best_out,List_right):m=len(List_right)for i in range(m):if List_right[i]>best_out:choose=List_right[i]return choosechoose=List_right[-1]return choosedict=generate(n) dict x=[int(i) for i,_ in dict.items() ] y=[float(i/n) for _,i in dict.items() ] #print(x) #print(y)plt.scatter(x,y,color='r')plt.show()圖中X坐標表示最后錄取者的能力值,Y表示在1w次中所占比重,我們可以看到有接近40%的時候會選到最好的候選人,說明37%準則是比較準確的。
總結
以上是生活随笔為你收集整理的趣味概率问题:脑洞蒙特卡洛模型,来招聘!!!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: diff git 代码实现_Git比对文
- 下一篇: VGG-16网络结构详解