Untitled
unknown
plain_text
a year ago
2.2 kB
11
Indexable
foreach(var obj in objectAgregate)
{
sum_x = sum_X + obj.SeriesValue;
sum_Y = Sum_Y + obj.Value;
sum_XY = sum_XY + obj.SeriesValue * obj.Value;
squareSum_X = squareSum_X + obj.SeriesValue * obj.SeriesValue;
squareSum_Y = squareSum_Y + obj.Value * obj.Value;
}
var corr = (n * sum_XY - sum_X * sum_Y) / (Math.sqrt((n * squareSum_X - sum_X * sum_X) * (n * squareSum_Y - sum_Y * sum_Y)));
obj = mew ObjectAggregate();
--------------------------------------------------------------------------------
original: 172ms
nou: 172ms
--------------------------------------------------------------------------------
using System;
using System.Collections.Generic;
public class Program
{
public static void Pearson1(List<double> list1, List<double> list2)
{
double sum_X = 0;
double sum_Y = 0;
double sum_XY = 0;
double squareS_X = 0;
double squareS_Y = 0;
for(int i = 0; i < list1.Count; i++)
{
sum_X += list1[i];
sum_Y += list2[i];
sum_XY += list1[i] * list2[i];
squareS_X += list1[i]*list1[i];
squareS_Y += list2[i]*list2[i];
}
var corr = (list1.Count * sum_XY - sum_X * sum_Y) / (Math.Sqrt((list1.Count * squareS_X - sum_X * sum_X) * (list1.Count * squareS_Y - sum_Y * sum_Y)));
}
public static void Pearson2(List<double> list1, List<double> list2){
var sum_X = list1.Sum();
var sum_Y = list2.Sum();
var sum_XY = list1.Zip(list2, (x,y) => x*y).ToList().Sum();
var squareS_X = list1.Select(x => x*x).ToList().Sum();
var squareS_Y = list2.Select(x => x*x).ToList().Sum();
var corr = (list1.Count * sum_XY - sum_X * sum_Y) / (Math.Sqrt((list1.Count * squareS_X - sum_X * sum_X) * (list1.Count * squareS_Y - sum_Y * sum_Y)));
}
public static void Main()
{ List<double> list1 = new List<double>();
List<double> list2 = new List<double>();
Random random = new Random();
for (int i = 0; i < 2; i++)
{
for (int j = 0; j < 10000; j++)
{
list1.Add(random.NextDouble());
list2.Add(random.NextDouble());
}
}
Pearson1(list1, list2);
}
}Editor is loading...
Leave a Comment