Berechnen Sie anhand einer Reihe von Zahlen für die Ereignisse X und Y den Pearson-Korrelationskoeffizienten. Die Wahrscheinlichkeit jedes Ereignisses ist gleich, sodass die erwarteten Werte berechnet werden können, indem einfach jede Reihe summiert und durch die Anzahl der Versuche dividiert wird.
Eingang
1 6.86
2 5.92
3 6.08
4 8.34
5 8.7
6 8.16
7 8.22
8 7.68
9 12.04
10 8.6
11 10.96
Ausgabe
0.769
Der kürzeste Code gewinnt. Die Eingabe kann durch stdin oder arg erfolgen. Die Ausgabe erfolgt per Standardausgabe.
Bearbeiten: Eingebaute Funktionen sollten nicht zugelassen werden (dh berechneter erwarteter Wert, Varianz, Abweichung usw.), um eine größere Vielfalt an Lösungen zu ermöglichen. Sie können jedoch eine Sprache demonstrieren, die für die Aufgabe gut geeignet ist, indem Sie integrierte Funktionen (für Ausstellungen) verwenden.
Basierend auf Davids Idee für die Eingabe für Mathematica (86 Zeichen unter Verwendung des eingebauten Mittelwerts)
m=Mean;x=d[[All,1]];y=d[[All,2]];(m@(x*y)-m@x*m@y)/Sqrt[(m@(x^2)-m@x^2)(m@(y^2)-m@y^2)]
m = Mean;
x = d[[All,1]];
y = d[[All,2]];
(m@(x*y) - m@x*m@y)/((m@(x^2) - m@x^2)(m@(y^2) - m@y^2))^.5
Umgehen mit unserem eigenen Mittelwert (101 Zeichen)
m=Total[#]/Length[#]&;x=d[[All,1]];y=d[[All,2]];(m@(x*y)-m@x*m@y)/((m@(x^2)-m@x^2)(m@(y^2)-m@y^2))^.5
m = Total[#]/Length[#]&;
x = d[[All,1]];
y = d[[All,2]];
(m@(x*y)-m@x*m@y)/((m@(x^2)-m@x^2)(m@(y^2)-m@y^2))^.5
m=Total@#/Length@#&