概率問題是最方便使用計算機計算的問題。因為計算機可以模擬大量的重複計算工作,難以理解的概率問題,通過計算機**一算就很容易算出正確結果出來。
今天就為大家講解下如何通過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位並且更精確。迄今為止,有些人已經選拔出超級計算機來試圖計算...