Ну вот. В зеленой точке интенсивность зеленого существенно больше интенсивности красного. Это не противоречит чернобелости.
Ну, в-общем, ясно, что с таким определением надо в любом случае проехать по всей картинке (одна точка третьего цвета в самом конце может всё испортить).
Давайте я свой вариант для начала напишу. Заводим две переменные типа "цвет"
![$C_1$ $C_1$](https://dxdy-02.korotkov.co.uk/f/d/8/1/d81a84099e7856ffa4484e1572ceadff82.png)
,
![$C_2$ $C_2$](https://dxdy-01.korotkov.co.uk/f/8/5/f/85f3e1190907b9a8e94ce25bec4ec43582.png)
и две переменные типа "целое число"
![$n_1=0$ $n_1=0$](https://dxdy-04.korotkov.co.uk/f/7/0/3/703a06a5e614756d0231aefb576c899c82.png)
,
![$n_2=0$ $n_2=0$](https://dxdy-04.korotkov.co.uk/f/b/a/3/ba34fb0129e13800e350bdb7d5aa807b82.png)
. Фиксируем точность сравнения цветов
![$\varepsilon>0$ $\varepsilon>0$](https://dxdy-02.korotkov.co.uk/f/1/5/5/155142dbd92bd0eebef1ec0d4453145582.png)
. Читаем первую точку (N=1). Запоминаем ее цвет в
![$C_1$ $C_1$](https://dxdy-02.korotkov.co.uk/f/d/8/1/d81a84099e7856ffa4484e1572ceadff82.png)
, и пишем
![$n_1=1$ $n_1=1$](https://dxdy-04.korotkov.co.uk/f/3/3/9/33977ba75538e844bdb30e5c61af30a382.png)
. Читаем (N+1)-ую точку. Если она имеет цвет
![$C$ $C$](https://dxdy-02.korotkov.co.uk/f/9/b/3/9b325b9e31e85137d1de765f43c0f8bc82.png)
, и
![$C$ $C$](https://dxdy-02.korotkov.co.uk/f/9/b/3/9b325b9e31e85137d1de765f43c0f8bc82.png)
отличается от
![$C_j$ $C_j$](https://dxdy-04.korotkov.co.uk/f/7/2/5/725a09336f5f83eeaf18186a74c12b0f82.png)
меньше, чем на
![$\varepsilon$ $\varepsilon$](https://dxdy-02.korotkov.co.uk/f/9/a/e/9ae7733dac2b7b4470696ed36239b67682.png)
, то на место
![$C_j$ $C_j$](https://dxdy-04.korotkov.co.uk/f/7/2/5/725a09336f5f83eeaf18186a74c12b0f82.png)
кладем среднее значение цветов, попавших в
![$C_j$ $C_j$](https://dxdy-04.korotkov.co.uk/f/7/2/5/725a09336f5f83eeaf18186a74c12b0f82.png)
(то есть что-то типа
![$\frac{n_j}{n_j+1}C_j+\frac{1}{n_j+1}C$ $\frac{n_j}{n_j+1}C_j+\frac{1}{n_j+1}C$](https://dxdy-02.korotkov.co.uk/f/1/a/2/1a25a55e204aac86d358869ff0cf59df82.png)
), и увеличиваем
![$n_j$ $n_j$](https://dxdy-02.korotkov.co.uk/f/5/4/1/54158e2c605c3ecf783cdc13e723567682.png)
на 1. Иначе: если
![$n_2>0$ $n_2>0$](https://dxdy-04.korotkov.co.uk/f/7/2/7/727f4d235517afe164955202dc74c1b182.png)
, то ответ: картинка не является черно-белой. А если
![$n_2=0$ $n_2=0$](https://dxdy-04.korotkov.co.uk/f/b/a/3/ba34fb0129e13800e350bdb7d5aa807b82.png)
, то объявляем
![$C_2=C$ $C_2=C$](https://dxdy-03.korotkov.co.uk/f/a/2/0/a20e31be08018066f7ba2fdd21dff31b82.png)
,
![$n_2=1$ $n_2=1$](https://dxdy-01.korotkov.co.uk/f/c/a/0/ca0ef981ce55d91f4da09d96243123e382.png)
. Если дошли до конца, то картинка является черно-белой.
Недостаток алгоритма --- не рассмотрен случай, когда в какой-то момент оказывается, что
![$C_1$ $C_1$](https://dxdy-02.korotkov.co.uk/f/d/8/1/d81a84099e7856ffa4484e1572ceadff82.png)
и
![$C_2$ $C_2$](https://dxdy-01.korotkov.co.uk/f/8/5/f/85f3e1190907b9a8e94ce25bec4ec43582.png)
отличаются меньше, чем на
![$\varepsilon$ $\varepsilon$](https://dxdy-02.korotkov.co.uk/f/9/a/e/9ae7733dac2b7b4470696ed36239b67682.png)
.