Tuesday, June 22, 2010

Need for s... tatistics.

Почему-то всегда хочется добыть максимум возможной информации из того, что доступно. Поясню на примере.

Взять, скажем, сайт edu-43.kirov.ru.
Что доступно извне? Изображения с гистограммами, отображающими количество сдавших в каждой из школ (от 0 до 9 вкл., 10-19 и т.д.; 100-балльники занимают отдельный столбик).

Пример:


Чего хочется? Ну, например, список школ, в которых есть люди, написавшие от 80 до 100 баллов, м? Любопытно же, какие школы рулят в плане конкретного предмета.


На самом деле скрипт пишется просто, единственной загвоздкой было то, как узнать, наличествует ли столбик в конкретной позиции.
Наиболее адекватным решением выглядит такое: смотрим цвет некоторого конкретного пиксела картинки, который однозначно соответствует наличию столбца. Как нетрудно догадаться, такими пикселами являются те, которые расположены прямо над чёрной линией горизонтальной оси.
Для простоты конвертируем png в bmp, у него спецификация крайне проста, из-за чего можно выяснить то, что нужно, не используя никаких библиотек для работы с изображениями (тупо вычисляем номер нужного нам байта).
Если кому интересно, исходник выложил здесь. Там есть ещё что допиливать (например, выдача названий ОУ вместо их кодов), но мне уже лень.
Пример работы для такого предмета, как биология:
100 points:
"940018"

90 and more points:
"860009, 940030, 940064"

80 and more points:
"520001, 530010, 550011, 550013, 560001, 570010, 590008, 590009, 600003, 610011, 630009, 640007, 660003, 660004, 670001, 670007, 670008, 690004, 710002, 720014, 740006, 770001, 810006, 840007, 850006, 850017, 870001, 870004, 880007, 880010, 900001, 900003, 910006, 910007, 910008, 920003, 930004, 930007, 940012, 940023, 940036, 940037, 940040, 940052, 940056, 940067, 940069, 940076, 940210"
Отталкиваясь от этого, можно и немного дальше проанализировать. Скажем, 940018 — это лицей №21, там учится некая Ксюша, которая на всерос по биологии ездила (между прочим, призёр), так что ежу понятно, у кого 100 баллов...


P.S.: что-то как-то сумбурненько получилось, ну да ладно))

Автобусы и правила Кирхгофа.

Вы никогда не задумывались, что интервалы хождения автобусов (обозначим их T) сродни сопротивлению? Можно даже проводимости складывать, как при параллельном соединении (если несколько автобусов подходят) и получить среднее время ожидания.