1. C# / Говнокод #22589

    −23

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    public static double[] GetSolutions(Func<double, double> left, Func<double, double> right, Func<double, double, bool> comparator, double minX, double maxX, double step)
    {
    	List<double> list = new List<double>(8);
    	for (double index = minX; index <= maxX; index += step) if (comparator(left(index), right(index))) list.Add(index);
    	return list.ToArray();
    }

    Запостил: dm_fomenok, 15 Марта 2017

    Комментарии (10) RSS

    • говно код.

      вот лучше

      public static double[] GetSolutions(Func<double, double> left, Func<double, double> right, Func<double, double, bool> comparator, double minX, double maxX, double step)
              {
                  return Range(minX, maxX, step).Where(i => comparator(left(i), right(i))).ToArray();
              }
      
              private static IEnumerable<double> Range(double minX, double maxX, double step)
              {
                  for (var index = minX; index <= maxX; index += step)
                  {
                      yield return index;
                  }
              }
      Ответить
      • # return Range(minX, maxX, step)

        А теперь подставь double.MinValue, double.MaxValue и double.Epsilon
        Ответить
        • подставил. у меня 64мб и 50мб свободно...

          а если у тебя нет памяти тогда юзай этот код

          public static IEnumerable<double> GetSolutions(Func<double, double> left, Func<double, double> right, Func<double, double, bool> comparator, double minX, double maxX, double step)
                  {
                      return Range(minX, maxX, step).Where(i => comparator(left(i), right(i)));
                  }
          
                  private static IEnumerable<double> Range(double minX, double maxX, double step)
                  {
                      for (var index = minX; index <= maxX; index += step)
                      {
                          yield return index;
                      }
                  }
          Ответить
          • # private static IEnumerable<double> Range

            А без этого метода слабо?
            Ответить
            • Можно но тогда эстетика LINQ теряется :)
              Ответить
            • Ну можно написать изврат типа

              public static double[] GetSolutions(Func<double, double> left, Func<double, double> right, Func<double, double, bool> comparator, double minX, double maxX, double step)
                      {
                          return Enumerable.Range(0, (int)((maxX - minX) / step)).Select(i => minX + (step * i)).Where(i => comparator(left(i), right(i))).ToArray();
                      }


              но мне кажется тут код - гавно :)
              Ответить
    • А не посадить ли мне тебя на 8 лет строгача, dm_fomenok?
      Ответить
    • показать все, что скрытоVanished
      Ответить
    • * g o a t s e x * g o a t s e x * g o a t s e x *
      g                                               g
      o /     \             \            /    \       o
      a|       |             \          |      |      a
      t|       `.             |         |       :     t
      s`        |             |        \|       |     s
      e \       | /       /  \\\   --__ \\       :    e
      x  \      \/   _--~~          ~--__| \     |    x
      *   \      \_-~                    ~-_\    |    *
      g    \_     \        _.--------.______\|   |    g
      o      \     \______// _ ___ _ (_(__>  \   |    o
      a       \   .  C ___)  ______ (_(____>  |  /    a
      t       /\ |   C ____)/      \ (_____>  |_/     t
      s      / /\|   C_____)       |  (___>   /  \    s
      e     |   (   _C_____)\______/  // _/ /     \   e
      x     |    \  |__   \\_________// (__/       |  x
      *    | \    \____)   `----   --'             |  *
      g    |  \_          ___\       /_          _/ | g
      o   |              /    |     |  \            | o
      a   |             |    /       \  \           | a
      t   |          / /    |         |  \           |t
      s   |         / /      \__/\___/    |          |s
      e  |           /        |    |       |         |e
      x  |          |         |    |       |         |x
      * g o a t s e x * g o a t s e x * g o a t s e x *
      Ответить

    Добавить комментарий