public Histogram(IEnumerable <double> data, int bucketCount) { data.ShouldNotBeNull("data"); bucketCount.ShouldBePositive("bucketCount"); double lower, upper; MathTool.GetMinMax(data, out lower, out upper); double width = (upper - lower) / bucketCount; // Add buckets for each bin; the smallest bucket's lowerbound must be slightly smaller // than the minimal element. AddBucket(new Bucket(lower.Decrement(), lower + width)); for (var i = 1; i < bucketCount; i++) { var lo = lower + i * width; AddBucket(new Bucket(lo, lo + width)); } if (IsDebugEnabled) { log.Debug("Histogram을 생성했습니다. lower=[{0}], upper=[{1}], bucketCount=[{2}]", lower, upper, bucketCount); } AddData(data); }