[PYTHON] Vous serez ingénieur dans 100 jours ――Jour 63 ――Programmation ――À propos de la probabilité 1

Cliquez ici jusqu'à hier

Vous deviendrez ingénieur dans 100 jours - Jour 59 - Programmation - À propos des algorithmes

Vous deviendrez ingénieur dans 100 jours --- Jour 53 --Git --À propos de Git

Vous deviendrez ingénieur dans 100 jours - Jour 42 --Cloud --À propos des services cloud

Vous deviendrez ingénieur dans 100 jours - Jour 36 --Base de données --À propos de la base de données

Vous deviendrez ingénieur dans 100 jours-24 jours-Python-Bases du langage Python 1

Vous deviendrez ingénieur dans 100 jours --Jour 18 --Javascript --Les bases de JavaScript 1

Vous deviendrez ingénieur dans 100 jours - Jour 14 --CSS --CSS Basics 1

Vous deviendrez ingénieur dans 100 jours - Jour 6 --HTML - Bases du HTML 1

À propos de la probabilité

En regardant dans le dictionnaire, cela semble être un "rapport à tous les phénomènes".

En programmation, ce calcul de probabilité est souvent utilisé.

De plus, les statistiques ainsi que la probabilité sont l'un des domaines à traiter. Si vous allez en tant que programmeur, sur les termes et les méthodes de calcul Je pense qu'il vaut mieux garder ça bas.

Terme de probabilité

J'ai choisi les termes de probabilité que je veux supprimer.

le terme Anglais sens
probabilité Probability Pourcentage d'événements
permutation Permutation Disposer les r morceaux dans une rangée dans l'ordre de prélever r morceaux de n morceaux différents.
combinaison Combination Extraction de r parmi n différents
Sol Factorial Le produit des nombres entiers d'un entier positif à 1
Indépendance Les résultats les uns des autres ne s'affectent pas
Procès L'acte d'essayer de trouver la probabilité
Essai répété Une tentative de répéter la même action sans changer les conditions
Valeur attendue Expected value Valeur moyenne obtenue dans un essai
un événement Event Ce qui se produit
Événement produit Des deux événements A et B, événements où A et B se produisent en même temps
Tous les évènements Un résumé de toutes les conséquences
Événement racine Atomic event Événements qui ne peuvent pas être subdivisés davantage
Événements supplémentaires Evénements autres qu'un
Événement d'exclusion Événements qui ne se produisent pas en même temps
Événement vide Un événement qui n'existe pas
Ben figure Un diagramme visuel des relations entre plusieurs ensembles et l'étendue des ensembles
Chances odds Valeur numérique indiquant la probabilité en théorie des probabilités
Distribution de probabilité probability distribution Représente la probabilité de prendre chaque valeur pour une variable stochastique
Variable probabiliste random variable Valeur attribuée à ce qui peut arriver
Type discret(Variable probabiliste) Discrete とびとびの数になるVariable probabiliste
Type continu(Variable probabiliste) Continuous 幾らでも細かく刻むことができるVariable probabiliste

Calcul de la probabilité

Python a une bibliothèque pour vous aider à faire des calculs de probabilité Vous pouvez calculer la probabilité relativement facilement.

Factorielle

Le «plancher» peut être calculé avec la méthode «factorielle» telle que la bibliothèque «math».

Puisque la méthode de calcul est le produit d'un certain entier positif par un entier de 1. Si c'est le 4e étage, ce sera «4 * 3 * 2 * 1 (4!)» Et ce sera «24».

import math

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

24 3628800

permutation

«Séquence séquentielle» est le nombre lorsque r éléments sont sélectionnés parmi n éléments différents et disposés en ligne ».

Vous pouvez énumérer en générant une séquence à partir d'une liste (tableau). ʻIl est trouvé par permutations dans la bibliothèque itertools`.

ʻItertools.permutations (valeur de la liste, nombre à choisir) `

Dans ce cas, la valeur renvoyée elle-même n'est pas une liste Si vous voulez voir les valeurs, vous devez les convertir en liste.

Ce qui suit est l'ordre lorsque 2 sur 3 sont sélectionnés et disposés.

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')]

Nombre total de colonnes

Si le nombre est petit, il peut être répertorié, mais si le nombre de colonnes est trop grand, il ne peut pas être affiché. Si vous ne voulez trouver que le nombre total, vous pouvez utiliser math.factorial.

La formule est «n! / (N --r)!», Donc le nombre total de séquences pour sélectionner «5» à partir de «7» est

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

2520

Vous pouvez maintenant le trouver.

combinaison

La «combinaison» est le nombre lors de la sélection de «r» à partir de «n» différents, et ne considère pas l'ordre comme l'ordre.

Vous pouvez énumérer en générant une séquence à partir d'une liste (tableau). «Il se trouve dans les« combinaisons »de la bibliothèque itertools».

ʻItertools.combinations (valeur de liste, nombre à choisir) `

L'énumération des combinaisons pour sélectionner 2 sur 5 est la suivante.

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')]

Dans ce cas, il n'y a pas de duplication entre les éléments.

Faire une combinaison en tenant compte de la duplication d'éléments Utilisez combinaisons_with_replacement.

ʻItertools.combinations_with_replacement (valeur de la liste, nombre à choisir) `

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')]

Nombre total de combinaisons

Si vous ne voulez trouver que le nombre total, vous pouvez utiliser math.factorial.

La formule est «n! / (R! * (N --r)!)», Donc le nombre total de combinaisons pour sélectionner «3» à partir de «7» est Ce sera comme suit.

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

35

Produit cartésien (produit direct de plusieurs listes)

Pour créer un «produit direct de plusieurs listes», utilisez le «produit» de la bibliothèque «itertools».

ʻItertools.product (valeur de liste, valeur de liste) `

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')]

Si vous spécifiez le nombre de répétitions dans l'argument repeat, l'objet itérable est utilisé à plusieurs reprises. Vous pouvez générer un produit direct.

ʻItertools.product (valeur de la liste, répéter = nombre de fois) `

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')]

Résumé

Je vais aborder la probabilité, mais apprenons d'abord les termes. Demain, il s'agit de calculer les valeurs attendues.

37 jours avant de devenir ingénieur

Informations sur l'auteur

HP d'Otsu py: http://www.otupy.net/

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

Twitter: https://twitter.com/otupython

Recommended Posts

Vous serez ingénieur dans 100 jours ――Jour 63 ――Programmation ――À propos de la probabilité 1
Vous serez ingénieur dans 100 jours ――Jour 65 ――Programmation ――A propos de la probabilité 3
Vous serez ingénieur dans 100 jours ――Jour 64 ――Programmation ――À propos de la probabilité 2
Vous serez ingénieur dans 100 jours ――Jour 71 ――Programmation ――À propos du scraping 2
Vous serez ingénieur dans 100 jours ――Jour 61 ――Programmation ――A propos de l'exploration
Vous serez ingénieur dans 100 jours ――Jour 74 ――Programmation ――À propos du scraping 5
Vous serez ingénieur dans 100 jours ――Jour 73 ――Programmation ――À propos du scraping 4
Vous serez ingénieur dans 100 jours ――Jour 75 ――Programmation ――À propos du scraping 6
Vous deviendrez ingénieur dans 100 jours --Jour 68 --Programmation --A propos de TF-IDF
Vous serez ingénieur dans 100 jours ――Jour 70 ――Programmation ――À propos du grattage
Vous serez ingénieur dans 100 jours ――Jour 81 ――Programmation ――À propos de l'apprentissage automatique 6
Vous serez ingénieur dans 100 jours ――Jour 82 ――Programmation ――À propos de l'apprentissage automatique 7
Vous serez ingénieur dans 100 jours ――Jour 79 ――Programmation ――À propos de l'apprentissage automatique 4
Vous serez ingénieur dans 100 jours ――Jour 76 ――Programmation ――À propos de l'apprentissage automatique
Vous serez ingénieur dans 100 jours ―― Jour 80 ―― Programmation ―― À propos de l'apprentissage automatique 5
Vous serez ingénieur dans 100 jours ――Jour 78 ――Programmation ――À propos de l'apprentissage automatique 3
Vous serez ingénieur dans 100 jours ――Jour 84 ――Programmation ――À propos de l'apprentissage automatique 9
Vous serez ingénieur dans 100 jours ――Jour 83 ――Programmation ――À propos de l'apprentissage automatique 8
Vous serez ingénieur dans 100 jours ――Jour 77 ――Programmation ――À propos de l'apprentissage automatique 2
Vous serez ingénieur dans 100 jours ――Jour 85 ――Programmation ――À propos de l'apprentissage automatique 10
Vous serez ingénieur dans 100 jours - Jour 27 - Python - Exercice Python 1
Vous serez ingénieur dans 100 jours - Jour 34 - Python - Exercice Python 3
Vous serez ingénieur dans 100 jours - Jour 31 - Python - Python Exercice 2
Vous serez ingénieur dans 100 jours --Jour 86 --Base de données -
Vous serez ingénieur dans 100 jours ――Jour 24 ―― Python ―― Bases du langage Python 1
Vous serez ingénieur dans 100 jours ――Jour 30 ―― Python ―― Bases du langage Python 6
Vous serez ingénieur dans 100 jours ――Jour 25 ―― Python ―― Bases du langage Python 2
Vous serez ingénieur dans 100 jours ―― Jour 60 ―― Programmation ―― À propos de la structure des données et de l'algorithme de tri
Vous serez ingénieur dans 100 jours - Jour 29 - Python - Bases du langage Python 5
Vous serez ingénieur dans 100 jours - Jour 33 - Python - Bases du langage Python 8
Vous serez ingénieur dans 100 jours --Jour 26 --Python --Basiques du langage Python 3
Vous devenez ingénieur en 100 jours - Jour 35 - Python - Ce que vous pouvez faire avec Python
Vous serez ingénieur dans 100 jours --Jour 32 --Python --Basiques du langage Python 7
Vous serez ingénieur dans 100 jours --Jour 28 --Python --Les bases du langage Python 4
Vous devenez ingénieur en 100 jours ――Jour 67 ――Programmation ――A propos de l'analyse morphologique
Vous devenez ingénieur en 100 jours ――Jour 66 ――Programmation ――À propos du traitement du langage naturel
Si vous tirez une loterie avec 1% de chances d'apparaître 100 fois de suite, gagnerez-vous une fois?
Si vous écrivez View decorator dans urls.py dans Django, la liste sera plus élevée.
Si une exception survient dans la fonction, elle sera transmise à l'appelant 2
Si une exception survient dans la fonction, elle sera transmise à l'appelant 1