@cluster_centers = [rand_point(), rand_point()] 15.times do @clusters = [[], []] @posts.each do |post| min_distance, min_point = nil, nil @cluster_centers.each.with_index do |center, i| if distance(center, post) < min_distance min_distance = distance(center, post) min_point = i end end @clusters[min_point] << post end @cluster_centers = @clusters.map do |post| average(posts) end end