Получите простейшую реализацию алгоритма Брезенхема и смоделируйте отрисовку отрезка линии с конечными координатами (0,0)-(ones,zeros)
. Это просто метод распространения ошибок.
Когда алгоритм генерирует изменение X-координаты (X-шаг), он соответствует 1 записи, Y-шаг соответствует нулевому биту.
def Distribute(ones, zeros):
leng = ones + zeros
err = leng // 2
res = []
for i in range(0, leng):
err = err - ones
if err < 0 :
res.append(1)
err = err + leng
else:
res.append(0)
print(res)
Distribute(5,3)
[1, 0, 1, 0, 1, 1, 0, 1]