[PYTHON] Sie werden in 100 Tagen Ingenieur. ――Tag 65 ――Programmieren ――Über Wahrscheinlichkeit 3

Klicken Sie hier bis gestern

Sie werden in 100 Tagen Ingenieur - Tag 63 - Programmierung - Über Wahrscheinlichkeit 1

Sie werden in 100 Tagen Ingenieur - Tag 59 - Programmierung - Über Algorithmen

Sie werden in 100 Tagen Ingenieur --- Tag 53 - Git - Über Git

Sie werden in 100 Tagen Ingenieur - Tag 42 - Cloud - Über Cloud-Dienste

Sie werden in 100 Tagen Ingenieur - Tag 36 - Datenbank - Über die Datenbank

Sie werden Ingenieur in 100-Tage-24-Python-Grundlagen der Python-Sprache 1

Sie werden in 100 Tagen Ingenieur - Tag 18 - JavaScript - Grundlagen von JavaScript 1

Sie werden in 100 Tagen Ingenieur - 14. Tag - CSS - CSS-Grundlagen 1

Sie werden in 100 Tagen Ingenieur - Tag 6 - HTML - HTML-Grundlagen 1

Wahrscheinlichkeit, vertraut zu sein

Lassen Sie uns über das Problem der Wahrscheinlichkeit nachdenken, das durch die Programmierung relativ vertraut ist.

Wie hoch ist die Wahrscheinlichkeit, dass Schüler mit demselben Geburtstag in einer 30-Personen-Klasse sind?

Ich denke, die Anzahl der Grund- und Mittelschulklassen ist ungefähr so Die Wahrscheinlichkeit, dass es in einer 30-Personen-Klasse sogar eine Gruppe von Personen mit demselben Geburtstag gibt Wie lange wird es dauern?

"Wahrscheinlichkeit, dass auch nur ein Paar denselben Geburtstag hat = 1 - Wahrscheinlichkeit, dass jeder Geburtstag anders ist"

Wenn es sich um eine Berechnungsformel handelt

1- \frac{365 \times 364 \times 363 \times ... (365-29) }{365^{30}}

Wird sein.

Es ist ärgerlich, also lösen wir es mit Python.

from functools import reduce
from operator import mul

n = 30
a1 = [i for i in range(365,365-n,-1)]
a2 = [365 for i in range(n)]
print('{:%}'.format(1- reduce(mul, a1)/reduce(mul, a2)))

70.631624%

Es ist ungefähr 70%. Wenn 30 Personen zusammenkommen, besteht eine 70% ige Chance, dass ein Paar denselben Geburtstag feiert.

** Wie hoch ist die Wahrscheinlichkeit von bis zu 50 Personen? ** ** **

Die Figuren werden zusammen gezeigt.

from functools import reduce
from operator import mul
import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(16,5))
x,y = [n for n in range(2,51)] , []
for n in x:
    a1 = [i for i in range(365,365-n,-1)]
    a2 = [365 for i in range(n)]
    y.append(1-reduce(mul, a1)/reduce(mul, a2))

plt.bar(x,y)
plt.grid()
plt.show()

download.png

40% für 20 Personen Etwa 97% in einer 50-Personen-Klasse Es scheint jemanden mit demselben Geburtstag zu geben.

Wenn es sich um eine Firma handelt, gibt es meiner Meinung nach 100 Personen, daher sollte es Personen mit fast demselben Geburtstag geben.

Gacha mit einer Trefferchance von 1%. Wie hoch ist die Wahrscheinlichkeit, 100 Mal hintereinander zu verlieren?

Wenn Sie beim Ziehen einer Gacha mit einer Chance von 1% treffen, besteht eine Wahrscheinlichkeit, dass Sie 100 Mal hintereinander verfehlen Wie lange wird es dauern?

Ist es sicher zu treffen, weil ich nur das ziehe? !! ?? !!

Wahrscheinlichkeit, 100 Mal hintereinander abzusteigen = Wahrscheinlichkeit, durch einmaliges Ziehen abzusteigen ^ (100)

Mit anderen Worten

(\frac{99}{100})^{100}

ist.

Wenn ich das Verhältnis berechne

print('{:%}'.format((99/100)**100))

36.603234%

Glaubst du nicht, dass es mit einer guten Wahrscheinlichkeit kommen wird?

Ist es wirklich ein dreifaches Festival? !! !! Es gibt Zeiten, in denen ich denke.

** Wie viel ziehst du und wie wahrscheinlich ist es, dass du gewinnst? **

Schlagwahrscheinlichkeit = 1-Verlustwahrscheinlichkeit Überlegen wir uns also, wie oft Sie ziehen und wie viel Sie gewinnen werden.

import matplotlib.pyplot as plt
%matplotlib inline

plt.figure(figsize=(16,5))
x,y = [n for n in range(1,501)],[]
for n in x:
    y.append(1-(99/100)**n)

plt.bar(x,y)
plt.grid()
plt.show()

download-1.png

In diesem Fall werden 30% entfernt, wenn Sie 100 Mal daran ziehen. Nach 200-maligem Ziehen überschreitet der Treffer schließlich 80%.

Wenn Sie es 500 Mal ziehen, scheint es, dass es sich fast nie lösen wird. Es ist jedoch kein sicherer Treffer. Wenn Sie also Pech haben, können Sie ihn verpassen.

Gibt es wirklich eine Gewinnchance von 1%? Lass uns simulieren.

Zählen Sie, wie oft Sie die Gacha 100 Mal mit einer Chance von 1% getroffen haben.

import random
import matplotlib.pyplot as plt
%matplotlib inline

weights = [0.99,0.01]
d = {b:0 for b in range(101)}
for p in range(10000):
    a = 0
    for i in range(100):
        tf = random.choices([False,True], weights=weights)[0]
        if tf:
            a=i+1
            break
    d[a]+=1

plt.figure(figsize=(16,5))
x = list(d.keys())
y = list(d.values())
plt.bar(x,y)
plt.grid()
plt.show()

download-2.png

0 ist die Anzahl der Personen, die verpasst haben, und die anderen sind die Anzahl der Treffer.

Mit der oben genannten Wahrscheinlichkeit werden 36% der Menschen ausfallen. Wenn es also 10.000 sind, werden ungefähr 3600 Menschen ausfallen.

Wenn Sie einen Fragebogen an ungefähr 10.000 Personen senden und die Anzahl der Personen, die dies verpasst haben, geringer ist Sie können die Möglichkeit sehen, dass die Wahrscheinlichkeit von Gacha manipuliert wird. Erstens ist es schwierig, einen Fragebogen an eine große Anzahl von Personen zu richten.

Wie hoch ist die Wahrscheinlichkeit, dass sich die japanische Serie bis zum letzten Rennen verheddert?

Es geht um Baseball. Der Gewinner der Japan-Serie ist derjenige, der sie viermal zuerst gekauft hat, und sie wird insgesamt siebenmal stattfinden. Wenn die Wahrscheinlichkeit, zu gewinnen oder zu verlieren, sowohl für SE als auch für PA 50% beträgt Wie hoch ist die Wahrscheinlichkeit, dass Sie sich bis zur 7. Runde verwickeln?

Es scheint gut, alle Kombinationen zu berücksichtigen, um die Wahrscheinlichkeit zu finden. Weil es endet, wenn 4 Siege oder 4 Niederlagen herauskommen Kombinationen, die bis zu 6 Rennen nicht abgeglichen wurden

import itertools

p4 = [i for i in itertools.product(['Sieg','Negativ'],repeat=4) if i.count('Sieg')==4 or i.count('Negativ')==4]#Endet in 4 Rennen
p5 = [i for i in itertools.product(['Sieg','Negativ'],repeat=5) if (i[0:4].count('Sieg')<4 and i[0:4].count('Negativ')<4) and (i.count('Sieg')==4 or i.count('Negativ')==4)]#Endet in 5 Rennen
p6 = [i for i in itertools.product(['Sieg','Negativ'],repeat=6) if (i[0:5].count('Sieg')<4 and i[0:5].count('Negativ')<4) and (i.count('Sieg')==4 or i.count('Negativ')==4)]#Endet in 6 Rennen
p7 = [i for i in itertools.product(['Sieg','Negativ'],repeat=6) if i[0:6].count('Sieg')<4 and i[0:6].count('Negativ')<4]#Endet nicht in 6 Rennen

print('Endet in 4 Rennen' , len(p4))
for a in p4:
    print(' '.join(a))
print('Endet in 5 Rennen' , len(p5))
for a in p5:
    print(' '.join(a))
print('Endet in 6 Rennen' , len(p6))
for a in p6:
    print(' '.join(a))
print('Endet nicht in 6 Rennen' , len(p7))
for a in p7:
    print(' '.join(a))

Endet in 4 Rennen 2 Win Win Win Win Negativ Negativ Negativ

Endet in 5 Rennen 8 Win Win Win Win Win Win Win Win Win Win Win Win Spiel negativ negativ Negative Win Win Win Negative Übereinstimmung Negativ Negativ Negativ Spiel Negativ Negativ Negativ Negativ Spiel

Endet in 6 Rennen 20 Win Win Win Win Win Win Win Win Win Win Win Win Win Win Win Game Negativ Negativ Win Win Win Win Win Win Win Win Win Spiel Spiel Spiel Spiel Spiel Win Win Win Win Spiel negativ Spiel negativ Spiel Spiel Spiel Spiel Spiel Negative Win Win Win Niederlage Negativer Gewinn, Sieg, Niederlage, Sieg Negativ Win Win Negativ Negativ Negativer Sieg Negativer Sieg Gewonnen Negatives Spiel Negatives Spiel Negativ Negatives Spiel Negatives Spiel Negativ Negativ Win Win Win Negativ Negativ Win Negativ Negatives Negatives Spiel Negatives Spiel Negativ Negativ Negativ Gewinn

Endet nicht in 6 Rennen 20 Win Win Win Win Negativ Spiel gewinnen Spiel gewinnen Spiel gewinnen Spiel gewinnen Win Win Game Besiege Win Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Spiel Win Game Win Game Win Negativ Win Win Win Negativ Negativer Sieg Sieg Negativer Sieg Niederlage gewonnen Negatives Spiel Negatives Spiel Negativer Gewinn Negativer Gewinn Negativer Gewinn Negativer Gewinn Negativ Negativ Win Win Win Negative Niederlage gewinnt Niederlage Negativ Negativ Gewinn Negativ Gewinn Negativ Negativ Negativ Win Win

"Kombination, die nicht in 6 Rennen endet / Kombination bis zu 6 Rennen" In Anbetracht der Kombination beträgt "20 / (2 + 8 + 20 + 20)" 0,4 = 40%.

In Anbetracht der Kombination, die in 7 Spielen gespielt werden kann, endet die Kombination nicht in diesen 6 Spielen Es gibt 40 Wege, das sind doppelt so viele wie 20.

Wenn man bedenkt, dass die Wahrscheinlichkeit, zu gewinnen oder zu verlieren, die Hälfte beträgt "40 Wege × (1/2) ^ 7 = 5/16 = 31,25%"

In Anbetracht der Wahrscheinlichkeit scheinen 31,25% in die 7. Runde zu gehen.

In jedem Fall werden 30% bis zur 7. Runde verwickelt.

Zusammenfassung

Wenn Sie über verschiedene Wahrscheinlichkeitsprobleme nachdenken und diese in das Programm aufnehmen Ich denke, Sie werden Ihre Programmierung verbessern.

Lassen Sie uns verschiedene Probleme lösen.

35 Tage, bis Sie Ingenieur werden

Informationen zum Autor

HP von Otsu py: http://www.otupy.net/

Youtube: https://www.youtube.com/channel/UCaT7xpeq8n1G_HcJKKSOXMw

Twitter: https://twitter.com/otupython

Recommended Posts

Sie werden in 100 Tagen Ingenieur - Tag 63 - Programmierung - Wahrscheinlichkeit 1
Sie werden in 100 Tagen Ingenieur. ――Tag 65 ――Programmieren ――Über Wahrscheinlichkeit 3
Sie werden in 100 Tagen Ingenieur. ――Tag 64 ――Programmieren ――Über Wahrscheinlichkeit 2
In 100 Tagen sind Sie Ingenieur. ――Tag 71 ――Programmieren ――Über das Schaben 2
In 100 Tagen sind Sie Ingenieur. ――Tag 61 ――Programmieren ――Über Erkundung
In 100 Tagen sind Sie Ingenieur. ――Tag 74 ――Programmieren ――Über das Schaben 5
In 100 Tagen sind Sie Ingenieur. ――Tag 73 ――Programmieren ――Über das Schaben 4
In 100 Tagen sind Sie Ingenieur. ――Tag 75 ――Programmieren ――Über das Schaben 6
In 100 Tagen sind Sie Ingenieur. ――Tag 68 ――Programmieren ――Über TF-IDF
In 100 Tagen sind Sie Ingenieur. ――Tag 70 ――Programmieren ――Über das Schaben
In 100 Tagen sind Sie Ingenieur. ――Tag 82 ――Programmieren ――Über maschinelles Lernen 7
In 100 Tagen sind Sie Ingenieur. ――Tag 79 ――Programmieren ――Über maschinelles Lernen 4
In 100 Tagen sind Sie Ingenieur. ――Tag 76 ――Programmieren ――Über maschinelles Lernen
In 100 Tagen sind Sie Ingenieur. ――Tag 80 ――Programmieren ――Über maschinelles Lernen 5
In 100 Tagen sind Sie Ingenieur. ――Tag 78 ――Programmieren ――Über maschinelles Lernen 3
Sie werden in 100 Tagen Ingenieur. ――Tag 84 ――Programmieren ――Über maschinelles Lernen 9
In 100 Tagen sind Sie Ingenieur. ――Tag 83 ――Programmieren ――Über maschinelles Lernen 8
In 100 Tagen sind Sie Ingenieur. ――Tag 77 ――Programmieren ――Über maschinelles Lernen 2
In 100 Tagen sind Sie Ingenieur. ――Tag 85 ――Programmieren ――Über maschinelles Lernen 10
Sie werden in 100 Tagen Ingenieur - 27. Tag - Python - Python-Übung 1
Sie werden in 100 Tagen Ingenieur - Tag 34 - Python - Python-Übung 3
Sie werden in 100 Tagen Ingenieur - 31. Tag - Python - Python-Übung 2
Sie werden in 100 Tagen Ingenieur. ――Tag 24 ―― Python ―― Grundlagen der Python-Sprache 1
Sie werden in 100 Tagen Ingenieur. ――Tag 30 ―― Python ―― Grundlagen der Python-Sprache 6
Sie werden in 100 Tagen Ingenieur. ――Tag 25 ―― Python ―― Grundlagen der Python-Sprache 2
In 100 Tagen sind Sie Ingenieur. ――Tag 60 ――Programmieren ――Über Datenstruktur und Sortieralgorithmus
Sie werden in 100 Tagen Ingenieur - 29. Tag - Python - Grundlagen der Python-Sprache 5
Sie werden in 100 Tagen Ingenieur - Tag 33 - Python - Grundlagen der Python-Sprache 8
Sie werden in 100 Tagen Ingenieur - 26. Tag - Python - Grundlagen der Python-Sprache 3
Sie werden in 100 Tagen Ingenieur - Tag 35 - Python - Was Sie mit Python tun können
Sie werden in 100 Tagen Ingenieur - Tag 32 - Python - Grundlagen der Python-Sprache 7
Sie werden in 100 Tagen Ingenieur - 28. Tag - Python - Grundlagen der Python-Sprache 4
Sie werden in 100 Tagen Ingenieur. ――Tag 67 ――Programmieren ――Über morphologische Analyse
Sie werden in 100 Tagen Ingenieur. ――Tag 66 ――Programmieren ――Über die Verarbeitung natürlicher Sprache
Wenn Sie eine Lotterie mit einer Chance von 1% ziehen, 100 Mal hintereinander zu erscheinen, werden Sie dann einmal gewinnen?
Wenn Sie View decorator in urls.py in Django schreiben, ist die Liste höher.
Wenn in der Funktion eine Ausnahme auftritt, wird diese an den Anrufer 2 übertragen
Wenn in der Funktion eine Ausnahme auftritt, wird diese an den Anrufer 1 übertragen