[PYTHON] Berechnen Sie die Anzahl der Änderungen

Was möchten Sie tun?

** Buchausstellung und Verkaufsveranstaltung ** ist geplant. Der Preis des Buches beträgt 3000 Yen. Die maximale Anzahl der Käufer beträgt 50. Wie viele 1000-Yen-Rechnungen und 5000-Yen-Rechnungen sollte ich vorbereiten, um sicherzustellen, dass mir nicht das Wechselgeld ausgeht?

Wenn Sie nie ausgehen

Betrachten Sie die folgenden drei Muster als Möglichkeiten.

Zahlungsart Veränderung
3 1000 Yen Rechnungen Keiner
5000 Yen 1 Blatt 1000 Yen 2 Blatt
10000 Yen 1 Blatt 5000 Yen 1 Blatt und 1000 Yen 2 Blatt

Da das Muster von 10.000 Yen die Anzahl aller Muster enthält, ist der schlimmste Fall, wenn 50 Personen 10.000 Yen zahlen, 1000 Yen 100 Blatt, 5000 Yen 50 Blatt, insgesamt 350.000 Yen Sie müssen eine Minute der Änderung vorbereiten.

Wenn Ihnen nicht so viel wie möglich ausgeht

Die Wahrscheinlichkeit, dass alle 50 Personen 10.000 Yen betragen, ist äußerst gering. Aus Simulation des Inhalts der Brieftasche wird angenommen, dass der Inhalt der Brieftasche die folgenden Wahrscheinlichkeiten aufweist, und der Inhalt jeder Brieftasche wird als unabhängig angenommen.

Anzahl der Rechnungen Wahrscheinlichkeit
0 1000 Yen Rechnungen 20%
1 1000 Yen Rechnung 20%
Zwei 1000-Yen-Scheine 20%
3 1000 Yen Rechnungen 20%
4 1000 Yen Rechnungen 20%
5000 Yen 0 Blatt 50%
5000 Yen 1 Blatt 50%

Daraus ergibt sich folgende Wahrscheinlichkeit für das Zahlungsmuster. (Wenn Sie eine Rechnung haben, werden Sie sie verwenden)

Zahlungsart Veränderung Wahrscheinlichkeit
3 1000 Yen Rechnungen Keiner 40%
5000 Yen 1 Blatt 1000 Yen 2 Blatt 30%
10000 Yen 1 Blatt 5000 Yen 1 Blatt und 1000 Yen 2 Blatt 30%

(Wahrscheinlichkeit von 10.000 Yen = 5000 Yen 0 Blatt x 1000 Yen (0 bis 2 Blatt) = 0,5 x (0,2 + 0,2 + 0,2) = 0,3)

Da wir davon ausgegangen sind, dass jede Zahlung unabhängig ist, kann die Summe mehrerer oder mehr Personen als Normalverteilung angesehen werden. Lassen Sie uns simulieren und überprüfen.

python


r = []
for i in range(100000):
    n = 100
    p = np.random.rand(50)
    for x in p:
        if x < 0.3:
            n += 1
        elif x < 0.6:
            n -= 1
    r.append(n)
r = np.array(r)
plt.hist(r, bins=20, range=(50, 150))
print('%.3f %.3f' % (r.std(), math.sqrt(50 * 0.6)))
>>>
5.472 5.477

image

Die Verteilung der Anzahl der 1000-Yen-Scheine und der Anzahl der 5000-Yen-Scheine ist wie folgt.

Verteilung der Anzahl von 1000 Yen-Scheinen ~ $ N (n \ mu_ {1000}, n \ sigma ^ 2_ {1000}) $ \mu_{1000} = 0.4 ~ ~ 3 + 0.3 ~ (-2) + 0.3 ~ (-2) = 0 \sigma^2_{1000} = 0.4 (3-0)^2 + 0.3 (-2-0)^2 + 0.3 (-2-0)^2 = 6

Verteilung der Anzahl von 5000 Yen-Scheinen ~ $ N (n \ mu_ {5000}, n \ sigma ^ 2_ {5000}) $ \mu_{5000} = 0.4 ~ ~ 0 + 0.3 ~ 1 + 0.3 ~ (-1) = 0 \sigma^2_{5000} = 0.4 (0-0)^2 + 0.3 (1-0)^2 + 0.3 (-1-0)^2 = 0.6

Unter der Annahme, dass die Wahrscheinlichkeit einer unzureichenden Änderung 5% beträgt, kann sie unter Verwendung von 1,67591 bei (0,1, 50) in der bilateralen t-Verteilungstabelle berechnet werden.

python


tv = 1.67591 
print('1000 Yen%.3f' % (math.sqrt(50 * 6) * tv))
print('5000 Yen%.3f' % (math.sqrt(50 * 0.6) * tv))
>>>
1000 Yen 29.028
5000 Yen 9.179

Am Ende werden wir 30 Stück 1000 Yen und 10 Stück 5000 Yen für insgesamt 80.000 Yen vorbereiten. (Berechnet basierend darauf, ob am Ende ein Mangel vorliegt oder nicht, nicht in der Mitte) Zu diesem Zeitpunkt beträgt die Wahrscheinlichkeit, dass einer von beiden nicht ausreicht, ungefähr 10% ($ = 1- (1-0.05) ^ 2 $), wenn man ihn einfach berechnet, aber in Wirklichkeit kann man ihn wie folgt denken, also 5%. Ich kann sagen.

Fall Wahrscheinlichkeit Bedeutung
1000 Yen Überschuss 5000 Yen Überschuss 0.9025 OK
1000 Yen Überschuss 5000 Yen Mangel 0.0475 Sie können sogar den Überschuss von 1000 Yen OK zurückgeben
1000 Yen Mangel 5000 Yen Überschuss 0.0475 NG
1000 Yen Mangel 5000 Yen Mangel 0.0025 NG

das ist alles

Recommended Posts