["Versammle 100 Personen in einem Raum und gib weiterhin Geld an einen zufälligen Partner" wird allmählich einen Unterschied zwischen Arm und Reich machen](http://gigazine.net/news/20170711-random-people-give-money-to- Es gibt einen Gigazine-Artikel namens random-other-people /).
Ich denke, es gibt verschiedene Eindrücke wie "Oh, das stimmt" und "Oh, ich war überrascht", aber da es ein einfaches Experiment ist, habe ich versucht, verschiedene Bedingungen zu ändern, und es war überraschend interessant, also werde ich es vorstellen.
Ich hatte das Gefühl, dass es nur wenige Leute mit 100 Leuten gab, also werde ich es mit 1000 Leuten versuchen.
Die Histogramme des Geldbetrags und der Anzahl der Personen in den Runden 10, 100, 1000 und 10000 lauten wie folgt.
Grundsätzlich fühlt es sich wie eine Normalverteilung an, die auf 1000 zentriert ist. Sie können sehen, dass sich die Basis erweitert, wenn der Versuch wiederholt wird.
Wenn Sie einer reicheren Person als Ihnen geben, besteht eine 10% ige Chance, erneut zu entscheiden, wer gegeben werden soll.
Es hat eine ähnliche Verteilung, aber eine engere Basis als zuvor. Kann man mit Sicherheit sagen, dass Reichtum umverteilt wird?
Im Gegenteil, wenn Sie einer ärmeren Person als Ihnen geben, besteht eine 10% ige Chance, erneut zu entscheiden, wer gegeben werden soll.
Im Gegenteil, diesmal hat sich die Basis stark erweitert. Es ist eine Disparitätsgesellschaft w Ist es ein Mikrokosmos einer Gesellschaft, die die Armen nicht zur Arbeit auffordert?
Dieses Mal gibt es keine besonderen Bedingungen, um Geld zu geben, wie beim allerersten, aber wenn der erste Besitz 50 ist.
Die Anzahl der Menschen, deren Geld 0 wird, steigt, und diejenigen, die kein Geld haben, geben es niemandem, so dass es ziemlich voreingenommen zu sein scheint.
Dies ist das Skript, das ich dieses Mal verwendet habe. Sie können es auf Ihrem Jupyter Notebook ausführen.
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt
%matplotlib inline
N = 1000 #Anzahl der Personen
M = 1000 #Erster Besitz
P = 0 #Wahrscheinlichkeit des Umdenkens bei der Übergabe an Arm / Reich.Wenn nicht 0.1%Dann 0.1。
plot_index = [10, 100, 1000, 10000] #Drehen Sie die Nummer, um das Diagramm anzuzeigen
T = max(plot_index)
plt.figure(figsize=(24, 6))
def transfer_money(moneys):
transfer = np.zeros_like(moneys)
for i in range(N):
if moneys[i] > 0:
while True:
to_money = np.random.randint(0, N)
#Wenn Sie es nicht den Reichen geben: `moneys[to_money] > moneys[i]`
#Wenn du es nicht den Armen gibst: `moneys[to_money] < moneys[i]`
if moneys[to_money] < moneys[i] and np.random.random() < P:
continue
break
transfer[i] -= 1
transfer[to_money] += 1
moneys += transfer
moneys = np.ones((N, )) * M
for i in range(T+1):
if i in plot_index:
plt.subplot(1, len(plot_index), plot_index.index(i)+1)
ax = sns.distplot(moneys, kde=False, bins=20)
ax.set_title("i=%d" % i)
ax.set_xlabel("money")
ax.set_ylabel("person count")
transfer_money(moneys)
plt.show()
So etwas macht Spaß.
Recommended Posts