این نمونه کد با c#.مطمئن نیستم که سوالتون رو درست متوجه شده باشم.
using System;
using System.Collections.Generic;
namespace Distance
{
class pt
{
public double Value;
public int Count;
public override string ToString ()
{
return string.Format ("[pt: {0}/{1} = {2}]", Value, Count, Value / Count);
}
}
class MainClass
{
public static void Main (string[] args)
{
List<Tuple<int,double>> input = new List<Tuple<int, double>> ();
input.Add (new Tuple<int, double> (1, 0.2));
input.Add (new Tuple<int, double> (2, 0.5));
input.Add (new Tuple<int, double> (2, 0.2));
input.Add (new Tuple<int, double> (2, 0.1));
input.Add (new Tuple<int, double> (0, 0.2));
input.Add (new Tuple<int, double> (0, 0.4));
input.Add (new Tuple<int, double> (0, 0.1));
input.Add (new Tuple<int, double> (0, 0.1));
input.Add (new Tuple<int, double> (1, 0.4));
input.Add (new Tuple<int, double> (2, 0.1));
input.Add (new Tuple<int, double> (2, 0.2));
input.Add (new Tuple<int, double> (1, 0.3));
input.Add (new Tuple<int, double> (0, 0.5));
input.Add (new Tuple<int, double> (2, 0.1));
input.Add (new Tuple<int, double> (1, 0.2));
input.Add (new Tuple<int, double> (0, 0.6));
input.Add (new Tuple<int, double> (2, 0.1));
Dictionary<int, pt> values = new Dictionary<int, pt> ();
foreach (var v in input) {
if (!values.ContainsKey (v.Item1))
values.Add (v.Item1, new pt ());
values [v.Item1].Count++;
values [v.Item1].Value += Math.Sqrt (v.Item2);
}
foreach (var v in values) {
Console.WriteLine ("{0}:\t{1}", v.Key, v.Value.ToString ());
}
}
}
}