[PYTHON] Sie werden in 100 Tagen Ingenieur - Tag 63 - Programmierung - Wahrscheinlichkeit 1

Klicken Sie hier bis gestern

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 Tagen 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

Über die Wahrscheinlichkeit

Wenn man im Wörterbuch nachschaut, scheint es ein "Verhältnis zu allen Phänomenen" zu sein.

Bei der Programmierung wird diese Wahrscheinlichkeitsberechnung häufig verwendet.

Auch Statistik und Wahrscheinlichkeit sind eines der Felder, mit denen man sich befassen muss. Wenn Sie als Programmierer arbeiten, über Begriffe und Berechnungsmethoden Ich denke, es ist besser, es unten zu halten.

Wahrscheinlichkeitsbegriff

Ich habe die Wahrscheinlichkeitsbedingungen aufgegriffen, die ich unterdrücken möchte.

der Begriff Englisch Bedeutung
Wahrscheinlichkeit Probability Prozentsatz der Ereignisse
Permutation Permutation Ordnen Sie r Teile in einer Reihe in der Reihenfolge an, in der r Teile aus n verschiedenen Teilen herausgenommen werden.
Kombination Combination Extrahieren von r aus n verschiedenen
Bodenbelag Factorial Das Produkt von ganzen Zahlen von einer positiven ganzen Zahl bis 1
Unabhängigkeit Die Ergebnisse voneinander beeinflussen sich nicht gegenseitig
Versuch Der Versuch, die Wahrscheinlichkeit zu finden
Iterativer Versuch Ein Versuch, dieselbe Aktion zu wiederholen, ohne die Bedingungen zu ändern
Erwarteter Wert Expected value Durchschnittswert in einem Versuch erhalten
Veranstaltung Event Was geschieht
Produktereignis Von den beiden Ereignissen A und B treten Ereignisse auf, bei denen A und B gleichzeitig auftreten
Alle Veranstaltungen Eine Zusammenfassung aller Konsequenzen
Root-Ereignis Atomic event Ereignisse, die nicht weiter unterteilt werden können
Zusätzliche Veranstaltungen Andere Ereignisse als eines
Ausschlussereignis Ereignisse, die nicht gleichzeitig auftreten
Leeres Ereignis Ein Ereignis, das nicht existiert
Ben Figur Ein visuelles Diagramm der Beziehungen zwischen mehreren Sätzen und der Ausdehnung der Sätze
Chancen odds Numerischer Wert, der die Wahrscheinlichkeit in der Wahrscheinlichkeitstheorie angibt
Wahrscheinlichkeitsverteilung probability distribution Stellt die Wahrscheinlichkeit dar, jeden Wert für eine stochastische Variable anzunehmen
Probabilistische Variable random variable Wert, der dem zugewiesen wird, was passieren kann
Diskreter Typ(Probabilistische Variable) Discrete とびとびの数になるProbabilistische Variable
Kontinuierlicher Typ(Probabilistische Variable) Continuous 幾らでも細かく刻むことができるProbabilistische Variable

Berechnung der Wahrscheinlichkeit

Python verfügt über eine Bibliothek, mit der Sie Wahrscheinlichkeitsberechnungen durchführen können Sie können die Wahrscheinlichkeit relativ einfach berechnen.

Fakultät

Der "Boden" kann mit der "faktoriellen" Methode wie der "mathematischen" Bibliothek berechnet werden.

Da die Berechnungsmethode das Produkt einer bestimmten positiven Ganzzahl zu einer Ganzzahl von 1 ist. Wenn es sich um den 4. Stock handelt, ist es "4 * 3 * 2 * 1 (4!)" Und "24".

import math

print(math.factorial(4))
print(math.factorial(10))

24 3628800

Permutation

"Sequentielle Sequenz" ist die Zahl, wenn r Elemente aus n verschiedenen Elementen ausgewählt und in einer Reihe angeordnet werden.

Sie können auflisten, indem Sie eine Sequenz aus einer Liste (einem Array) generieren. Es wird durch "Permutationen" in der "itertools" -Bibliothek gefunden.

itertools.permutations (Listenwert, zu wählende Nummer)

In diesem Fall ist der zurückgegebene Wert selbst keine Liste Wenn Sie die Werte anzeigen möchten, müssen Sie sie in eine Liste konvertieren.

Das Folgende ist die Reihenfolge, in der 2 von 3 ausgewählt und angeordnet werden.

import itertools

l = ['A', 'B', 'C']

p = itertools.permutations(l, 2)
print(list(p))

[('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]

Gesamtzahl der Spalten

Wenn die Anzahl klein ist, kann sie aufgelistet werden. Wenn die Anzahl der Spalten jedoch zu groß ist, kann sie nicht angezeigt werden. Wenn Sie nur die Gesamtzahl ermitteln möchten, können Sie "math.factorial" verwenden.

Die Formel lautet "n! / (N - r)!". Die Gesamtzahl der Sequenzen, aus denen "5" aus "7" ausgewählt werden soll, beträgt

n , r = 7 , 5
math.factorial(n) // math.factorial(n - r)

2520

Jetzt können Sie es finden.

Kombination

Die "Kombination" ist die Zahl bei der Auswahl von "r" aus verschiedenen "n" und berücksichtigt die Reihenfolge nicht wie die Reihenfolge.

Sie können auflisten, indem Sie eine Sequenz aus einer Liste (einem Array) generieren. Sie finden es in "Kombinationen" der "itertools" -Bibliothek.

itertools.combinations (Listenwert, zu wählende Nummer)

Die Aufzählung der Kombinationen zur Auswahl von 2 von 5 ist wie folgt.

l = ['a', 'b', 'c', 'd','e']
c = itertools.combinations(l, 2)
print(list(c))

[('a', 'b'), ('a', 'c'), ('a', 'd'), ('a', 'e'), ('b', 'c'), ('b', 'd'), ('b', 'e'), ('c', 'd'), ('c', 'e'), ('d', 'e')]

In diesem Fall gibt es keine Duplizierung zwischen Elementen.

Eine Kombination unter Berücksichtigung der Duplizierung von Elementen erstellen Verwenden Sie "Kombinationen mit Ersetzung".

itertools.combinations_with_replacement (Listenwert, zu wählende Nummer)

l = ['a', 'b', 'c']
c = itertools.combinations_with_replacement(l, 2)
print(list(c))

[('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'b'), ('b', 'c'), ('c', 'c')]

Gesamtzahl der Kombinationen

Wenn Sie nur die Gesamtzahl ermitteln möchten, können Sie "math.factorial" verwenden.

Die Formel lautet "n! / (R! * (N - r)!)". Die Gesamtzahl der Kombinationen zur Auswahl von "3" aus "7" beträgt also Es wird wie folgt sein.

n , r = 7 , 3
math.factorial(n) // (math.factorial(n - r) * math.factorial(r))

35

Kartesisches Produkt (direktes Produkt mehrerer Listen)

Verwenden Sie das "Produkt" der "itertools" -Bibliothek, um ein "direktes Produkt aus mehreren Listen" zu erstellen.

itertools.product (Listenwert, Listenwert)

l1 = ['a', 'b', 'c']
l2 = ['X', 'Y']
p = itertools.product(l1, l2)
print(list(p))

[('a', 'X'), ('a', 'Y'), ('b', 'X'), ('b', 'Y'), ('c', 'X'), ('c', 'Y')]

Wenn Sie die Anzahl der Wiederholungen im Argument "Wiederholung" angeben, wird das iterierbare Objekt wiederholt verwendet. Sie können ein direktes Produkt generieren.

itertools.product (Listenwert, Wiederholung = Anzahl der Male)

l1 = ['a', 'b', 'c']
p = itertools.product(l1, repeat=2)
print(list(p))

('a', 'a'), ('a', 'b'), ('a', 'c'), ('b', 'a'), ('b', 'b'), ('b', 'c'), ('c', 'a'), ('c', 'b'), ('c', 'c')]

Zusammenfassung

Ich werde auf die Wahrscheinlichkeit eingehen, aber zuerst lernen wir die Begriffe. Morgen geht es darum, erwartete Werte zu berechnen.

37 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 81 ――Programmieren ――Über maschinelles Lernen 6
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 86 - Datenbank - Über Hadoop
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