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

Cliquez ici jusqu'à hier

Vous deviendrez ingénieur dans 100 jours - Jour 63 - Programmation - À propos de la probabilité 1

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 valeur attendue

La «valeur attendue» est la valeur moyenne obtenue dans un essai.

C'est la somme de toutes les valeurs obtenues et de la probabilité que cela se produise.

Prenons l'exemple d'un dé.

La probabilité d'obtenir un dé est la suivante.

Les yeux sortent(x) 1 2 3 4 5 6
probabilité(p) 1/6 1/6 1/6 1/6 1/6 1/6

La valeur attendue du rouleau est la somme de la «probabilité de rouler *».

$ 1 * \frac{1}{6} + 2 * \frac{1}{6} +3 * \frac{1}{6} +4 * \frac{1}{6} +5 * \frac{1}{6} +6 * \frac{1}{6} = 3.5$

Vous pouvez vous attendre à ce que la moyenne pour lancer les dés une fois soit de 3,5.

Taux de retour

Le jeu a aussi des attentes. À ce moment-là, le rapport entre le montant à rembourser et la prime C'est ce qu'on appelle le «taux de retour».

Par exemple, supposons que vous payiez 10 millions de yens et que vous ayez 50% de chances d'obtenir 15 millions de yens, 40% de chances de 5 millions de yens et 10% de chances d'obtenir 0 yens.

La «valeur attendue» est «(50% x 15,0 millions de yens) + (40% x 5 millions de yens) + (20% x 0 yens) = 9,5 millions de yens»

Le «taux de retour» est de «9,5 millions de yens / 10 millions de yens», soit «95%».

Aimeriez-vous faire ce genre de jeu? Plus je continue à le faire, moins je pense d'argent.

Le taux de retour du jeu domestique bien connu est

type Taux de retour
Course de chevaux Environ 75%
Course de vélo Environ 75%
Course de bateau Environ 75%
Course automobile Environ 75%
loterie Environ 46%
Loterie de football Autour de 50%
pachinko Environ 80-90%

Plus vous en faites, moins vous obtiendrez d'argent.

Même si vous dépensez des dépenses publicitaires pour attirer des clients Plus les gens se rassemblent, plus les parents seront rentables. C'est une entreprise irrésistible.

Fondamentalement, le jeu avec un taux de retour de plus de 100% ne peut pas exister.

S'il y avait du jeu avec un taux de retour supérieur à 100% L'argent du côté des dépenses augmentera régulièrement.

Probabilité de jouer

Considérez les différentes probabilités de jeu.

Course de chevaux

Les courses hippiques se fient à l'ordre d'arrivée avec 16,18 chevaux. La façon d'acheter changera en fonction de l'ordre d'arrivée.

** Gagner **

Je vais compter sur un.

Dans ce cas, la probabilité de frapper est 16 têtes $ \ frac {1} {16} = 6,25 $% 18 têtes $ \ frac {1} {18} = 5,556 $%

** Double victoire **

Frappez le cheval qui sera en 1-3.

Parce que le cheval attendu peut être 1er ou 3ème C'est simplement trois fois la victoire.

Dans ce cas, la probabilité de frapper est 16 têtes $ \ frac {3} {16} = 18,75 $% 18 têtes $ \ frac {3} {18} = 16,667 $%

Si c'est une double victoire C'est une probabilité de frapper une fois toutes les six fois.

Cependant, les remboursements sont environ le double en moyenne Ce n'est pas très délicieux.

** Cadre Ren **

Dix-huit chevaux sont placés dans le cadre neuf. Chacun se compose de 1-2 têtes Il s'agit de deviner le classement dans ce cadre.

Deux cadres sont sélectionnés parmi les neuf cadres.

Il y a 36 façons \frac{1}{36} = 2.7778%

** Maren **

C'est une façon d'acheter que 1-2 ou 2-1 sont acceptables en tant que combinaison des deux têtes sélectionnées en 1-2.

16 têtes $ \ frac {1} {120} = 0,83333 $% 18 têtes $ \ frac {1} {153} = 0,65359 $%

** Cheval seul **

C'est un moyen d'acheter 1 à 2 tenues en combinant les deux sélectionnées en 1 à 2 tenues.

16 têtes $ \ frac {1} {240} = 0,41667 $% 18 têtes $ \ frac {1} {306} = 0,3268 $%

large

2 combinaisons sur 3 Il n'est prévu dans aucun ordre particulier quel que soit l'ordre d'arrivée.

J'ai juste besoin de porter 1-2, 1-3, 2-3 C'est simplement trois fois plus probable que Maren.

16 têtes $ \ frac {3} {120} = 2,5 $% 18 têtes $ \ frac {3} {153} = 1,9608 $%

** Triple **

Prédire la combinaison des 1er, 2ème et 3ème sans ordre particulier Combinaison «16C3», «18C3»

16 têtes $ \ frac {1} {560} = 0,17857 $% 18 têtes $ \ frac {1} {816} = 0,12255 $%

** Unité triple **

Prédire la combinaison des 1er, 2ème et 3ème dans l'ordre d'arrivée Séquence «16P3», «18P3»

16 têtes $ \ frac {1} {3360} = 0,029762 $% 18 têtes $ \ frac {1} {4896} = 0,020425 $%

WIN5

5 courses désignées par JRA J'attends chacun. C'est une victoire à la 5e puissance.

18 têtes $ \ frac {1} {1889568} = 0,0000529221 $%

La probabilité est d'environ 1 sur 1,9 million.

Parce que la probabilité de loterie, etc. est d'environ 1 sur 10 millions Je pense que WIN5 a une «valeur attendue» plus élevée.

La forte probabilité de courses de chevaux

Double victoire> Simple victoire> Rame de cadre> Large> Maren> Ma simple> Triple double> Triple simple> WIN5

Sera.

Roto Six

Lotto 6 est un nombre de 1 à 43 à «6 nombres réels» et «1 numéro bonus» Un total de 7 numéros sont sélectionnés et devinés, et il y a 1-5 mag.

** 1er prix **

Tous les 6 de ces nombres correspondent à "43C6"

\frac{1}{6096454} = 0.0000164030%

Le 1er prix a une probabilité d'environ 1/6 million.

** 2e année **

Correspond à 5 nombres réels, correspond à 1 numéro bonus

\frac{6}{6096454} = 0.0000984179%

Le deuxième prix a une probabilité d'environ 1 sur 1 000 000.

** 3 etc. **

5 sur 6 correspondent à ce nombre

\frac{216}{6096454} = 0.0035430432%

La probabilité est d'environ 1/30 000.

** 4 etc. **

4 sur 6 correspondent à ce nombre

$\frac{9990}{6096454} = 0.1638657488 $%

Est-ce la probabilité de frapper environ une fois sur 600 fois?

** 5 etc. **

3 sur 6 correspondent à ce nombre

$\frac{155400}{6096454} = 2.5490227598 $%

C'est environ une fois sur 40.

Puisque la 5e année est "1000 yens", elle ne touche qu'avec une probabilité de "2,5%". Même si je l'achète 40 fois, seulement 1000 yens seront retournés.

S'il ne s'agit pas de la première place, il sera reporté par report et le montant augmentera En premier lieu, il n'y a presque aucune chance de frapper dans la vie avec 1 chance sur 6 millions.

poker

Le poker est un jeu qui utilise 52 cartes. Découvrez combien de rôles vous avez.

Le rôle est

Rôle Contenu
quinte flush royale A-K-Q-J-10
Quinte flush Avec numéros consécutifs(Image)
5 cartes de la même suie
Quatre cartes 4 cartes de même rang et 1 autre voiture
Full house Trois cartes du même rang et deux autres cartes du même rang.
éclat Cinq cartes de la même suie.
tout droit Cinq cartes avec des numéros consécutifs.
Trois cartes Trois cartes du même rang et deux cartes secondaires de rangs différents.
Deux paires Deux cartes du même rang, deux ensembles et une carte latérale.
Une paire Deux cartes du même rang et trois cartes secondaires de rangs différents.
Carte haute Une main qui ne rentre dans aucune des situations ci-dessus. porc

Cette fois j'ai fait un programme pour juger le rôle Déterminez quel est le rôle à partir de la combinaison de toutes les cartes Trouvez le nombre de combinaisons de rôles.

Le jeu crée une fonction pour le juger comme 52 cartes À partir de la combinaison lorsque 5 feuilles sont sélectionnées parmi les 52 feuilles Comptez le nombre de rôles à la recherche de ce qu'est le rôle.

#Génération de deck
deck=[b+':'+str(a) for a in range(1,14) for b in ['C','S','D','H']]

#Jugement du rôle
def jadge_role(card):
    s = {}
    for c in card:
        k = int(c.split(':')[1])
        if k in s:
            s[k]+=1
        else:
            s[k] =1
    t = {c.split(':')[0] for c in card}
    n = sorted([c for c in s.keys()])
    if len(t)==1 and all([1 in n,10 in n ,11 in n,12 in n,13 in n]):
        return 'RSF'
    if len(t)==1 and (all([1 in n,10 in n ,11 in n,12 in n,13 in n]) or
             (max(n)-min(n)==4) and len(s)==5):
        return 'SF'
    if 4 in s.values():
        return '4C'
    if 3 in s.values() and 2 in s.values():
        return 'FH'
    if len(t)==1:
        return 'FL'
    if (all([1 in n,10 in n ,11 in n,12 in n,13 in n]) or
             (max(n)-min(n)==4) and len(s)==5):
        return 'ST'
    if 3 in s.values():
        return '3C'
    if list(s.values()).count(2)==2:
        return '2P'
    if list(s.values()).count(2)==1:
        return '1P'
    return 'BT'

#Calculer la combinaison
cards = itertools.combinations(deck,5)
calc_dict = {}
for card in cards:
    role = jadge_role(card)
    if role in calc_dict:
        calc_dict[role] += 1
    else:
        calc_dict[role]  = 1

#résultat
poker_base = math.factorial(52) // (math.factorial(52 - 5) * math.factorial(5))
print(poker_base)
for k,v in sorted(calc_dict.items(),reverse=True,key=lambda x:x[1]):
    print(k,'\t',v,'\t','{0:.10f}%'.format(v/poker_base*100))

2598960

Rôle Nombre de fois Pourcentage
BT 1302540 50.12%
1P 1098240 42.26%
2P 123552 4.75%
3C 54912 2.1128%
ST 10200 0.39246%
FL 5108 0.19654%
FH 3744 0.144057%
4C 624 0.024009%
SF 36 0.001385%
RSF 4 0.0001539%

Le résultat est comme ça.

La quinte flush royale est calculée pour sortir environ une fois sur environ 640 000 fois.

De «flash» et «straight», «straight» est deux fois plus susceptible d'apparaître. Donc, si vous vous demandez laquelle, visez une quinte avec une forte probabilité. Cela peut être une stratégie.

Résumé

Si la probabilité et la valeur attendue sont obtenues, le taux de retour peut également être calculé. Gacha etc. sont les mêmes que les jeux de roulette, etc. Si vous demandez la probabilité, combien d'argent devriez-vous mettre pour gagner le personnage? Vous pouvez simuler.

Dans les jeux et les gachas, nous demandons souvent des probabilités et des valeurs attendues. Il peut être bon de savoir calculer diverses probabilités.

36 jours jusqu'à ce que vous deveniez 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 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 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