Как я могу разделить интервал [начало, конец] на n точек равного расстояния? - PullRequest
0 голосов
/ 06 ноября 2019

У меня есть интервал от start до end, где start и end имеют тип double. Я хочу разделить интервал на n точек, где каждые две соседние точки находятся на одинаковом расстоянии друг от друга. Например:

// Given closed interval [-3.14,3.14]:
start = -3.14
end = 3.14
n = 3

// The 3 points would be:
-3.14, 0.0, 3.14

// Where the distance between each two neighboring points is 3.14

Или:

// Given left-closed, right-open interval [0,1):
start = 0
end = 1
n = 4

// The 4 points would be:
0.0, 0.25, 0.5, 0.75

// Where the distance between each two neighboring points is .25

У меня проблемы с этим, благодарю за любой совет

1 Ответ

2 голосов
/ 06 ноября 2019

В соответствии с логикой, которую вы показали, размеры interval:

  • закрыто: (end - start) / (n - 1)
  • открыто с одной стороны: (end - start) / n
  • открыть обе стороны: (end - start) / (n + 1)

Начальная левая точка:

  • закрыта: start
  • открыть слева:start + interval.

Все остальные точки просто добавьте interval сверху

...