public PositionSet3D getRandomPositionSet(int pointNum) { unchecked { int seed = (int)DateTime.Now.Ticks; this.pointNum = pointNum; LaplaceDistribution distributionX = new LaplaceDistribution(new StandardGenerator(seed++)); distributionX.Alpha = X_Alpha; LaplaceDistribution distributionY = new LaplaceDistribution(new StandardGenerator(seed++)); distributionY.Alpha = Y_Alpha; LaplaceDistribution distributionZ = new LaplaceDistribution(new StandardGenerator(seed++)); distributionZ.Alpha = Z_Alpha; Random r = new Random(); for (int i = 0; i < clusterPointNum; i++) { distributionX.Mu = minMu + (float)(r.NextDouble() * (maxMu - minMu)); distributionY.Mu = minMu + (float)(r.NextDouble() * (maxMu - minMu)); distributionZ.Mu = minMu + (float)(r.NextDouble() * (maxMu - minMu)); RandomPositionSet3D randomPositionSet = new RandomPositionSet3D((int)(pointNum / clusterPointNum), scale, distributionX, distributionY, distributionZ); positionSet3D = (PositionSet3D)randomPositionSet; } } return(positionSet3D); }
public PositionSet3D getRandomPositionSet(int pointNum) { unchecked { int seed = (int)DateTime.Now.Ticks; this.pointNum = pointNum; NormalDistribution distributionX = new NormalDistribution(new StandardGenerator(seed++)); distributionX.Sigma = X_Sigma; NormalDistribution distributionY = new NormalDistribution(new StandardGenerator(seed++)); distributionY.Sigma = Y_Sigma; NormalDistribution distributionZ = new NormalDistribution(new StandardGenerator(seed++)); distributionZ.Sigma = Z_Sigma; Random r = new Random(); //int scale = 1; for (int i = 0; i < clusterPointNum; i++) { distributionX.Mu = minMu + (float)(r.NextDouble() * (maxMu - minMu)); distributionY.Mu = minMu + (float)(r.NextDouble() * (maxMu - minMu)); distributionZ.Mu = minMu + (float)(r.NextDouble() * (maxMu - minMu)); RandomPositionSet3D randomPositionSet3D = new RandomPositionSet3D((int)(pointNum / clusterPointNum), scale, distributionX, distributionY, distributionZ); positionSet3D = randomPositionSet3D; } } return(positionSet3D); }