public void WriteResult(IResultWriter writer)
        {
            int maxStep = _percalationResult.Max();
            var result  = new Dictionary <int, double>(maxStep);

            foreach (var percalationStep in _percalationResult)
            {
                var t = percalationStep;
                while (t <= maxStep)
                {
                    if (result.ContainsKey(t))
                    {
                        result[t]++;
                    }
                    else
                    {
                        result.Add(t, 1);
                    }
                    t++;
                }
            }
            for (int i = 0; i <= maxStep; i++)
            {
                if (result.ContainsKey(i))
                {
                    result[i] = (double)result[i] / (double)_calculationTask.CountOfIteration;
                }
                else
                {
                    result.Add(i, 0);
                }
            }

            writer.WriteDoubleValue(GrafCalculator.GetAvarageLinkCount(_netMap));
            writer.WritePercalation(result);
        }