Je veux pouvoir analyser des données avec Python (partie 3)

(Partie 3)

1 jeu de jetons de pièces = lancer 3 fois

Ce n'était pas dans le livre, mais j'ai simplement changé "1 set 2 lancers" en "1 set 3 lancers" et changé le total de "4 lancers" à "6 lancers".

code

Il n'y a pas de commentaire. Le contenu est le même que les précédents (1) et (2).

from random import randint
from decimal import Decimal
from prettytable import PrettyTable
import numpy as np

def tossBiasedCoin():
    """ Returns 0 or 1 with 0 having 2/3 chance """
    return randint(0,2) % 2

# Make a 4x4 array
counts = [[0 for j in range(4)] for i in range(4)]

# Toss a coin many times to get counts
sampleCount = 500000
for num in range(sampleCount):    
    firstSet = [tossBiasedCoin(),tossBiasedCoin(),tossBiasedCoin()] # 0, 1, 2, 3
    secondSet = [tossBiasedCoin(),tossBiasedCoin(),tossBiasedCoin()]
    counts[sum(secondSet)][sum(firstSet)] += 1

# Conert all counts to perentage
TWOPLACES = Decimal(10) ** -2 
for i in range(4):
    for j in range(4):
        value = counts[i][j]        
        counts[i][j] = (100 * Decimal(counts[i][j])/Decimal(sampleCount)).quantize(TWOPLACES)
        print("Converted the value {} to percentage {}".format(value, counts[i][j]))

# Make summaries of number of heads.
keys = np.arange(7)
values = [counts[0][0], # 0
          counts[0][1]+counts[1][0], # 1
          counts[0][2]+counts[2][0]+counts[1][1],
          counts[0][3]+counts[1][2]+counts[2][1]+counts[3][0],
          counts[1][3]+counts[2][2]+counts[3][1],
          counts[2][3]+counts[3][2],
          counts[3][3]]
          
# Add row descriptions
counts[0].insert(0, '2nd set 0 head')
counts[1].insert(0, '2nd set 1 head')
counts[2].insert(0, '2nd set 2 heads')
counts[3].insert(0, '2nd set 3 heads')

# Create table with column descriptions, add rows, then show it.
table = PrettyTable(["", "1st set 0 head", "1st set 1 head", "1st set 2 heads", "1st set 3 heads"])
table.padding_width = 1
table.add_row(counts[0])
table.add_row(counts[1])
table.add_row(counts[2])
table.add_row(counts[3])
print table

# Draw a bar chart
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
rects = plt.bar(keys,
                 values, 
                 0.5,
                 alpha=0.4,
                 align="center", 
                 color='b')

plt.xlabel('Number of heads')
plt.ylabel('Probability (%)')
plt.title('Probabilities heads with a biased coin')
plt.xticks(keys, np.arange(7))

plt.tight_layout()
plt.show()

résultat

Cela ressemble plus à un écart type.

image

Le nombre de cartes qui peuvent être lancées à 6 est de "6 x 1/3", ce qui signifie qu'il est facile d'obtenir 2 cartes.

(Partie 4) se poursuit.

Recommended Posts

Je veux pouvoir analyser des données avec Python (partie 3)
Je veux pouvoir analyser des données avec Python (partie 1)
Je veux pouvoir analyser des données avec Python (partie 4)
Je veux pouvoir analyser des données avec Python (partie 2)
Je veux analyser les journaux avec Python
Je veux déboguer avec Python
Je veux pouvoir exécuter Python avec VS Code
Je veux jouer avec aws avec python
☆ M. Anzai… !! Je veux analyser les données …… Partie 1 Préparation des données ☆ Analysons les statistiques des joueurs NBA (résultats) avec Python. basketball
[Pandas] J'ai essayé d'analyser les données de ventes avec Python [Pour les débutants]
Je veux utiliser MATLAB feval avec python
Je veux frapper 100 sciences des données avec Colaboratory
Je veux faire un jeu avec Python
Je veux être OREMO avec setParam!
J'ai essayé d'obtenir des données CloudWatch avec Python
Je souhaite utiliser le répertoire temporaire avec Python2
#Unresolved Je veux compiler gobject-introspection avec Python3
Je veux résoudre APG4b avec Python (chapitre 2)
Je veux écrire dans un fichier avec Python
Je veux gérer l'optimisation avec python et cplex
Je veux hériter de l'arrière avec la classe de données python
Je veux travailler avec un robot en python.
Je veux AWS Lambda avec Python sur Mac!
Je veux faire fonctionner un ordinateur quantique avec Python
Je souhaite spécifier une autre version de Python avec pyvenv
J'ai essayé de créer diverses "données factices" avec Python faker
Je veux assister automatiquement à des cours en ligne avec Python + Selenium!
[Python] Je souhaite utiliser l'option -h avec argparse
Je veux faire ○○ avec les Pandas
J'en ai marre de Python, alors j'ai essayé d'analyser les données avec nehan (je veux aller vivre même avec Corona) -Partie 2)
J'en ai marre de Python, alors j'ai essayé d'analyser les données avec nehan (je veux aller vivre même avec Corona) -Partie 1)
Je connais? Analyse de données à l'aide de Python ou de choses que vous souhaitez utiliser quand vous le souhaitez avec numpy
Je souhaite utiliser un caractère générique que je souhaite décortiquer avec Python remove
Je veux connaître la météo avec LINE bot avec Heroku + Python
Je veux résoudre APG4b avec Python (seulement 4.01 et 4.04 au chapitre 4)
Je veux sortir le début du mois prochain avec Python
Essayez d'analyser le mahjong familial en ligne à l'aide de Python (PARTIE 1: Prendre des données)
Je souhaite rechercher le texte intégral avec elasticsearch + python
[Introduction] Je veux créer un robot Mastodon avec Python! 【Débutants】
Je veux détecter des objets avec OpenCV
Traiter les données Pubmed .xml avec python [Partie 2]
Je veux gérer la rime part1
Je veux écrire un blog avec Jupyter Notebook
Je veux gérer la rime part3
Convertir des données Excel en JSON avec python
Je veux utiliser jar de python
Je voulais résoudre ABC160 avec Python
Je veux créer un environnement Python
Je veux installer Python avec PythonAnywhere
Convertissez des données FX 1 minute en données 5 minutes avec Python
[Part1] Scraping avec Python → Organisez jusqu'à csv!
Je voulais résoudre ABC172 avec Python
Je veux gérer la rime part2
Je veux gérer la rime part5
Je veux gérer la rime part4
Je veux le faire avec Python lambda Django, mais je vais m'arrêter