code: public static double[] computeDxs(List<KmeansPoint> basePoints, List<KmeansPoint> centroids)
      {
          double[] dxs = new double[basePoints.size()];
  
          double sum = 0.0d;
          double[] nearestCentroid;
          for (int pointIndex = 0; pointIndex < basePoints.size(); pointIndex++)
          {
              // 対象点に対する最近傍中心との距離(dx)を算出し、二乗に比例する重み付き確率分布値を算出
              KmeansPoint targetPoint = basePoints.get(pointIndex);
              KmeansResult kmeanResult = KmeansCalculator.nearestCentroid(targetPoint, centroids);
              nearestCentroid = kmeanResult.getCentroid();
              double dx = MathUtils.distance(targetPoint.getDataPoint(), nearestCentroid);
              double probabilityDist = Math.pow(dx, 2);
              sum += probabilityDist;
              dxs[pointIndex] = sum;
          }
  
          return dxs;
      }
docs: 点リストを用いて重みつき確率分布を算出する。
  
  @param basePoints 算出元となる点リスト
  @param centroids 現状の中心点リスト
  @return 重みつき確率分布