使用python計算酒鬼被抓的概率問題

2021-10-04 07:36:06 字數 1698 閱讀 3146

概率問題是最方便使用計算機計算的問題。因為計算機可以模擬大量的重複計算工作,難以理解的概率問題,通過計算機**一算就很容易算出正確結果出來。

今天就為大家講解下如何通過python來計算一道很有名的酒鬼概率問題。

問題:

已知某酒鬼有90%的日子都會出去喝酒,

喝酒只去固定三家酒吧。

今天警察找了其中兩家酒吧都沒有找到酒鬼。

問:

酒鬼在第三家酒吧的機率?
#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @time : 2020/3/23 14:46

# @author : lihua

# @version : 1.0

# @contact : [email protected]

# @file : drunkard.py

# @software: pycharm

# 酒鬼的概率問題,已知乙個酒鬼一天會去酒吧的概率是90%,而他會去三個酒吧。警察去酒吧抓人,去了兩個酒吧都沒抓到他,那麼請問,警察去第三個酒吧抓到他的概率有多大。

# 這個問題可以用概率這麼算,隨機給乙個10以內的數,如果這個數為10,則為不在酒吧,如果為1到9,則在酒吧。然後將這9個數分成三個段,叫a段,b段,c段

# 然後隨機取三個段,然後分別判斷這個數是否在這個段以內,取10000次,第一次在則不計算,第二次在則不計算,第三次不管在不在都要計算。

# 最後計算的結果就是0.75

import random

list=[[1,2,3],[4,5,6],[7,8,9]]

def drunkard():

n = 100000

m1 = 0 # 在第三家和家裡總數

m2 = 0 # 在第三家酒吧的總數

for i in range(n):

# 隨機取乙個數,這個數決定了這個人是否在酒吧,如果為10則不在酒吧

a=random.randint(1,10)

print(a)

# 將list打亂,打亂後的順序就是警察訪問酒吧的順序,警察會依次訪問list[0]和list[1]的酒吧

random.shuffle(list)

print(list)

# 遍歷兩個list

for x in range(2):

in_bar=false

for y in list[x]:

if y==a:

# 如果在酒吧,則判定在前兩個酒吧為true,將不計算此次資料

in_bar=true

break

if in_bar:

break

# 只有前兩個酒吧都沒人,才將總計算資料+1

if not in_bar:

m1 += 1

print("m1",m1)

# 當在第三個酒吧的時候,在酒吧的資料加1

for z in list[2]:

if a==z:

m2 += 1

print("在第三個酒吧")

# 最後相除,計算出最終結果

print("m1",m1,"m2",m2,"結果是",m2/m1)

if __name__ == '__main__':

drunkard()

使用 python 抓乙個網頁

要抓取乙個 要解決下面幾個問題 beautiful soup 文件 1.用python模擬useragent為android的瀏覽器 url編碼 urllib.quote abc edf 2.beautiful soup 用的最多的一些方法 soup beautifulsoup html print...

使用Python 計算的程式

預設情況下,python 3 原始碼檔案以 utf 8 編碼,所有字串都是 unicode 字串。如果我們要定義不同的編碼那麼參考下面 coding utf 8 print hello world coding utf 8 上面這個注釋就是定義編碼 井號是注釋符號,表示單行注釋,關於注釋問題,產考文...

使用 python 實現 的計算

1 的神奇 是乙個無數人追隨的真正的神奇數字。我不是很清楚乙個永遠重複的無理數的迷人之處。在我看來,我樂於計算 也就是計算 的值。因為 是乙個無理數,它是無限的。這就意味著任何對 的計算都僅僅是個近似值。如果你計算100位,我可以計算101位並且更精確。迄今為止,有些人已經選拔出超級計算機來試圖計算...