Как разделить интервал на два - PullRequest
0 голосов
/ 26 апреля 2018

Могу ли я разделить интервал в Python?

У меня есть этот интервал:

x = [10, 30]

Я хочу разделить его на 2, используя код Python, чтобы получить это:

y = [10, 20] 
z = [20, 30]

Возможно ли это?

Ответы [ 3 ]

0 голосов
/ 26 апреля 2018

Золь общего назначения:

def interval(l, n):
    w = (l[1] - l[0]) // n
    return [[l[0]+i*w, l[0]+(i+1)*w] for i in range(n)]

так, в вашем случае:

interval([10, 30], 2)
#[[10, 20], [20, 30]]

но вы также можете запросить дополнительные интервалы:

interval([10, 30], 4)
#[[10, 15], [15, 20], [20, 25], [25, 30]]
0 голосов
/ 26 апреля 2018

Решение:

x = [10, 30]

y = [x[0], x[0] + (x[1] - x[0]) // 2]
z = [y[1], x[1]]

print(y, z)

Выход: [10, 20] [20, 30]

0 голосов
/ 26 апреля 2018

да, просто вычислите середину интервала один раз и используйте его для второго набора:

x = [10, 30]
y = [x[0],(x[1]+x[0])//2]
z = [y[1],x[1]]

print(y,z)

результат:

[10, 20] [20, 30]
...