Ich habe kein Gefühl für "Quiz fragen nach Investitionssinn", also habe ich versucht, es mit roher Gewalt zu lösen (Python Monte Carlo Simulation)

Ein interessantes Quiz wurde im letzten Artikel von "ROKO HOUSE Siegel-Stil logische Anlagetechnik" gegeben.

[Quiz, um den Investitionssinn zu fragen ]

Das Problem ist wie folgt.

In Ländern, die nur Jungen wollen, wachsen in jedem Haus Kinder, bis ein Junge geboren wird. Wenn ich ein Mädchen habe, werde ich ein weiteres Kind haben. Wenn ein Junge geboren wird, hat er keine Kinder mehr. Wie ist das Geschlechterverhältnis in diesem Land?

Ich dachte intuitiv: "Jedes Haus hat einen Jungen. Gibt es ein bisschen mehr Mädchen, weil ich bis zur Geburt eines Jungen immer noch Kinder habe?"

Klicken Sie hier für den Antwortartikel. Ich denke, es ist eine gute Idee, selbst nachzudenken, bevor Sie es sich ansehen.

[Quiz, um den Investitionssinn zu erfragen <Antwort / Erklärung>]

Meine Intuition war ein Fehler, also versuchte ich tatsächlich zu sehen, ob die Antwort wirklich richtig war.

Ich bat eine Million Paare, Kinder zu machen, bis ein Junge geboren wurde.

Eigentlich ist es unmöglich, wenn es keine Diktatur ist, also habe ich es mit Python-Code gemacht.

Ist das auch eine Art Monte-Carlo-Simulation?

Unten sind die Ergebnisse. Ich denke, es ist eine gute Idee, selbst nachzudenken, bevor Sie es sich ansehen. (Im Folgenden verwöhnt)

Ich habe es mit dem folgenden Code bestätigt.

python


import numpy as np
import pandas as pd
import random
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()

dic =  {'boys':[],
        'girls':[]}

n_couples = 1000000

for i in range(n_couples):
    n_girls = 0
    n_boys = 0
    while True:
        baby = random.choice(['boy','girl'])
        if baby=='boy':
            n_boys += 1
            break
        else:
            n_girls += 1
            
    dic['boys'].append(n_boys)
    dic['girls'].append(n_girls)

df = pd.DataFrame(dic)
df.index.name = 'parent_id'
df['total'] = df.sum(axis = 1)

print("Geboren aus einer Million Paaren,")
print("Anzahl der Jungen:{:>7}".format(df['boys'].sum()))
print("Anzahl der Mädchen:{:>7}".format(df['girls'].sum()))
print("\n Durchschnittliche Anzahl der Geburten:{:.0f}Mal".format(df['total'].mean()))
print("\n Verteilung der Haushalte nach Anzahl der Mädchen")
df2 = pd.DataFrame(df['girls'].value_counts())

df2.index.name = 'Anzahl der Mädchen'
df2.columns = ['Anzahl der Haushalte']

df2e = df2.copy()
df2e.index.name = 'Number of girls'
df2e.columns = ['number of couples']
df2e.plot(kind = 'bar', figsize = (8,5))

df2

Unten finden Sie die Ausgaben und Kommentare des Codes.

python


Geboren aus einer Million Paaren,
Anzahl der Jungen: 1000000
Anzahl der Mädchen: 999687

Die Zahl der Jungen beträgt natürlich eine Million. Die Zahl der Mädchen beträgt fast eine Million.

python


Durchschnittliche Anzahl der Geburten: 2 mal

Das Ergebnis ist, dass Sie im Durchschnitt einen Jungen haben, wenn Sie zweimal gebären. Ich bin überzeugt, dass die Wahrscheinlichkeit 50% beträgt, aber ich wusste es nicht im Voraus.

** Verteilung der Haushalte nach Anzahl der Mädchen **

Anzahl der Mädchen Anzahl der Haushalte
0 500580
1 249813
2 124471
3 62512
4 31319
5 15657
6 7718
7 3962
8 1935
9 1041
10 493
11 239
12 141
13 60
14 22
16 14
15 13
17 4
18 3
20 1
19 1
25 1

In etwa 50.000 Haushalten wird die Hälfte aller Jungen bei der ersten Geburt geboren, und es gibt keine Mädchen. Die Wahrscheinlichkeit beträgt 50%.

Der Punkt, dass die Gesamtzahl der Jungen und Mädchen gleich ist, ist, dass "50% der Haushalte einen Jungen und null Mädchen haben". Als ich intuitiv darüber nachdachte, übersah ich diesen Punkt.

Und ein Mädchen wird ungefähr 25.000 Haushalte sein, zwei Mädchen werden ungefähr 12.500 Haushalte sein und so weiter. Es besteht eine 50% ige Chance, dass bei jeder Geburt ein Junge geboren wird.

Schließlich gab es ein Paar, das 25 Mädchen zur Welt brachte, als sie einen Jungen zur Welt brachten. Ist Prost auf gute Arbeit.

Die obige Grafik zeigt dies. dist_of_couples.png

Ich habe dieses Quiz zuerst nicht verstanden, aber während ich den Code schrieb: "Wenn ein Junge geboren wird, hört das Paar auf zu gebären, und ich knete verschiedene Dinge, aber am Ende besteht eine 50% ige Chance, dass welches Paar gebiert." Ist es nicht nur so, dass Jungen und Mädchen weiterhin geboren werden? "

Eine Person mit einem guten Sinn wird diese Tatsache sofort bemerken und ein Verteilungsbild wie das obige Diagramm wird in den Sinn kommen.

Die Antwort lautet also

** "Das Verhältnis von Männern zu Frauen in diesem Land beträgt 1: 1 (erwarteter Wert)" **

War die richtige Antwort.

Recommended Posts

Ich habe kein Gefühl für "Quiz fragen nach Investitionssinn", also habe ich versucht, es mit roher Gewalt zu lösen (Python Monte Carlo Simulation)
"Round of MD5-Hashwert des 6-stelligen Passworts" Ich habe es mit Python versucht
Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Ich habe versucht zu beheben "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren"
Ich habe eine einfache Mail-Sendeanwendung mit tkinter von Python erstellt
Als ich versuchte, mit Python eine virtuelle Umgebung zu erstellen, funktionierte dies nicht
Ich wollte die Anzahl der Zeilen in mehreren Dateien wissen und versuchte, sie mit einem Befehl abzurufen
Ich habe versucht, Soma Cube mit Python zu lösen
[Python] Ich habe versucht, automatisch einen täglichen Bericht über YWT mit Outlook-Mail zu erstellen
Python-Anfänger haben einen Chat-BOT erstellt, also habe ich versucht, zusammenzufassen, wie man es macht
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Bildverarbeitung mit Python (ich habe versucht, es in 0 und 1 Mosaikkunst zu binarisieren)
Ich habe versucht, AOJs Integer-Theorie mit Python zu lösen
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Ich mag es nicht, mit der Veröffentlichung von Pokemon Go frustriert zu sein, deshalb habe ich ein Skript erstellt, um die Veröffentlichung zu erkennen und zu twittern
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Ich habe einen Server mit Python-Socket und SSL erstellt und versucht, über den Browser darauf zuzugreifen
Ich habe eine Funktion zum Trimmen des Bildes von Python openCV erstellt. Verwenden Sie sie daher bitte.
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Da es Doppelgenger gab, habe ich versucht, es mit künstlicher Intelligenz zu unterscheiden (lacht) (Teil 1)
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Eine Sammlung wettbewerbsfähiger Pro-Techniken, die mit Python gelöst werden können
Ich habe versucht, das Problem der Kombinationsoptimierung mit Qiskit zu lösen
Ich habe versucht, die erste Frage der Mathematik-Aufnahmeprüfung 2019 der Universität Tokio mit Python Sympy zu lösen
[5.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
(Python) Erwarteter Wert ・ Ich habe versucht, die Monte-Carlo-Probenahme sorgfältig zu verstehen
[2nd] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ein Memorandum beim automatischen Erwerb mit Selen
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
[Python] Ich habe versucht, eine stabile Sortierung zu implementieren
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
[3.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[Python] Ein Memo, das ich versucht habe, mit Asyncio zu beginnen
Ich habe versucht, mit Selenium und Python einen regelmäßigen Ausführungsprozess durchzuführen
Ich habe versucht, mit Python eine 2-Kanal-Post-Benachrichtigungsanwendung zu erstellen
Ich wollte das ABC164 A ~ D-Problem mit Python lösen
Ich habe versucht, eine ToDo-App mit einer Flasche mit Python zu erstellen
[4.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
[1.] Ich habe versucht, mit Python ein bestimmtes Authenticator-ähnliches Tool zu erstellen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
Ich habe versucht, mit Go einen exklusiven Kontrollmechanismus zu erstellen
[Du musst es wissen! ] Ich habe versucht, eine Python-Umgebung gewinnbringend einzurichten, indem ich die Privilegien von Universitätsstudenten voll ausgenutzt habe.
Ich habe versucht, mit einem Remote-Server über Socket-Kommunikation mit Python zu kommunizieren.
Ich habe versucht, ein Programm zu erstellen, das Hexadezimalzahlen mit Python in Dezimalzahlen konvertiert
Wie man offline in Echtzeit schreibt Ich habe versucht, E11 mit Python zu lösen
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, mit Raspeye 4 (Python Edition) ein signalähnliches Signal zu erzeugen.
Ich habe versucht, die Standardrolle neuer Mitarbeiter mit Python zu optimieren
[Outlook] Ich habe versucht, mit Python automatisch eine tägliche Berichtsmail zu erstellen
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen