public ClusterCollection RandomSeeding(int k, double[][] data)
{
int size = data.Length;
double[][] seeds = new double[k][];
Random random = new Random();
Hashtable random_table = new Hashtable();
Cluster cluster = null;
ClusterCollection init_clusters = new ClusterCollection();
for (int i = 0; i < k;)
{
int r = random.Next(size - 1);
if (!random_table.ContainsKey(r))
{
random_table.Add(r, 0);
seeds[i] = new double[3];
seeds[i][0] = data[r][0]; seeds[i][1] = data[r][1]; seeds[i][2] = data[r][2];
cluster = new Cluster();
cluster.Add(seeds[i]);
init_clusters.Add(cluster);
i++;
}
}
return(init_clusters);
}