воскресенье, 20 мая 2012 г.


                                                           АЛГОРИТМ ХАФФМАНА
Алгоритм основан на том факте, что некоторые символы из стандартного 256-символьного набора в произвольном тексте могут встречаться чаще среднего периода повтора, а другие, соответственно, – реже. Следовательно, если для записи распространенных символов использовать короткие последовательности бит, длиной меньше 8, а для записи редких символов – длинные, то суммарный объем файла уменьшится.
Хаффман предложил очень простой алгоритм определения того, какой символ необходимо кодировать каким кодом для получения файла с длиной, очень близкой к его энтропии (то есть информационной насыщенности). Пусть у нас имеется список всех символов, встречающихся в исходном тексте, причем известно количество появлений каждого символа в нем. Выпишем их вертикально в ряд в виде ячеек будущего графа по правому краю листа. Выберем два символа с наименьшим количеством повторений в тексте (если три или большее число символов имеют одинаковые значения, выбираем любые два из них). Проведем от них линии влево к новой вершине графа и запишем в нее значение, равное сумме частот повторения каждого из объединяемых символов. Отныне не будем принимать во внимание при поиске наименьших частот повторения два объединенных узла (для этого сотрем числа в этих двух вершинах), но будем рассматривать новую вершину как полноценную ячейку с частотой появления, равной сумме частот появления двух соединившихся вершин. Будем повторять операцию объединения вершин до тех пор, пока не придем к одной вершине с числом. Для проверки: очевидно, что в ней будет записана длина кодируемого файла. Теперь расставим на двух ребрах графа, исходящих из каждой вершины, биты 0 и 1 произвольно – например, на каждом верхнем ребре 0, а на каждом нижнем – 1. Теперь для определения кода каждой конкретной буквы необходимо просто пройти от вершины дерева до нее, выписывая нули и единицы по маршруту следования. Для рисунка 4.5 символ «А» получает код «000″, символ «Б» – код «01″, символ «К» – код «001″, а символ «О» – код «1″.
В теории кодирования информации показывается, что код Хаффмана является префиксным, то есть код никакого символа не является началом кода какого-либо другого символа. Проверьте это на нашем примере. А из этого следует, что код Хаффмана однозначно восстановим получателем, даже если не сообщается длина кода каждого переданного символа. Получателю пересылают только дерево Хаффмана в компактном виде, а затем входная последовательность кодов символов декодируется им самостоятельно без какой-либо дополнительной информации. Например, при приеме «0100010100001″ им сначала отделяется первый символ «Б» : «01-00010100001″, затем снова начиная с вершины дерева – «А» «01-000-10100001″, затем аналогично декодируется вся запись «01-000-1-01-000-01″ «БАОБАБ».
Алгоритм Шеннона-Фано

В чем заключается алгоритм Шеннона-Фано, если коротко.
Есть набор букв, для каждой задана вероятность ее появления в тексте.
Упорядочиваем этот массив по убыванию вероятностей с сохранением ключей.
Дальше разбиваем на 2 (для бинарного кодирования) группы, в первую группу входят буквы "сверху" этого массива, во вторую - "снизу", так, чтобы сумма вероятностей была примерно равна.
Алгоритм вхождения в группы может быть разным, суть одна.
Первая группа - сверху, вторая - снизу.
Комбинировать нельзя!
Нельзя взять, допустим, (1,5,6) и (2,3,4,7,8), хотя суммы вероятностей для них были бы более уравновешенны, чем (1,2) и (3,4,5,6,7,8)
Так вот.
Пример использования QR кода на афишах 
Аннотированный каталог по теме: "Основные направления кибернетики" 


Ссылка
Краткая информация
1
http://nplit.ru/books/item/f00/s00/z0000045/index.shtml
В статьях отечественных и зарубежных ученых на основе анализа развития кибернетики оцениваются взгляды так называемых 'отчаянных кибернетиков', убежденных в неограниченных возможностях кибернетики и ЭВМ, считавших возможным подменить кибернетикой все другие конкретные и абстрактные науки.Подводятся некоторые итоги развития кибернетики более чем за четверть века.
2
http://www.bibliotekar.ru/rInform/12.htm

Место кибернетики в системе наук



3
http://sdb.su/svalka/497-matematicheskie-osnovy-kibernetiki.html
Математические основы кибернетики
4
http://bse.sci-lib.com/article060920.html
Экономическая кибернетика и ее развитие
5
http://kbugaev.narod.ru/libfree/diplom/Kibernet.htm
Рассмотрение методологических проблем применения  кибернетики  в криминалистике предполагает обсуждение вопросов о специфике  сферы  познания,  о путях совершенствования компьютерных систем  об автоматизации экспертной деятельности, о соотношении человека и техники в борьбе с преступностью и т.п.
6
http://o-med.ru/kibernetika_medicynskaya.php
Кибернетика медицинская — раздел кибернетики, изучающий процессы управления и переработки информации в живых организмах и коллективах людей применительно к задачам лечения и профилактики заболеваний.
7
http://49l.ru/a/kibernetika_-_sfera_kibernetiki
Кибернетика является междисциплинарной наукой. Она возникла на стыке математики, логики, семиотики, физиологии, биологии, социологии. Ей присущ анализ и выявление общих принципов и подходов в процессе научного познания.
8
http://spb-tei.ru/referats/33-problemy-razvitija-informatiki-i.html
Киберпространство породило то, что сейчас принято называть виртуальным социумом. Общение в таком социуме происходит преимущественно посредством компьютерных телекоммуникаций. 
9
http://pusk.by/bse/95162/
Кибернетические системы различаются по характеру циркулирующих в них сигналов. Если все эти сигналы, равно как и состояние всех элементов системы, задаются непрерывными параметрами, система называется непрерывной. В случае дискретности всех этих величин говорят о дискретной системе. В смешанных, или гибридных, системах приходится иметь дело с обоими типами величин.
10
http://pco.iis.nsk.su/simics/informatics/fet/podlov.htm
От научной деятельности Алексея Андреевича Ляпунова неотделима его деятельность гражданина, пробивающего дорогу новым направлениям в науке. В первом ряду таких направлений находится кибернетика.

суббота, 19 мая 2012 г.

"Зачем нужны теоретические основы информатики для человека"

         Практически в каждой науке есть фундамент, без которого ее прикладные аспекты лишены основ. Для математики такой фундамент составляют теория множеств, теория чисел, математическая логика и некоторые другие разделы; для физики - это основные законы классической и квантовой механики, статистической физики, релятивистской теории и т.д. Можно, конечно, научиться считать и пользоваться калькулятором, даже не подозревая о существовании указанных выше разделов математики, делать химические анализы без понимания существа химических законов, но при этом не следует думать, что знаешь математику или химию. Примерно то же с информатикой: можно изучить несколько программ и даже освоить некоторое ремесло, но это отнюдь не вся информатика, точнее, даже не самая главная и интересная ее часть.
         Теоретические основы информатики - пока не вполне сложившийся, устоявшийся раздел науки. Он возникает на наших глазах, что делает его особенно интересным - нечасто мы наблюдаем и даже можем участвовать в рождении новой науки! Как и теоретические разделы других наук, теоретическая информатика формируется в значительной мере под влиянием потребностей обучения информатике.
         Теоретическая информатика - наука математизированная. Она складывается из ряда разделов математики, которые прежде казались мало связанными друг с другом: теории автоматов и теории алгоритмов, математической логики, теории формальных языков и грамматик, реляционной алгебры, теории информации и др. Теоретическая информатика старается методами точного анализа ответить на основные вопросы, возникающие при работе с информацией, например вопрос о количестве информации, сосредоточенной в той или иной информационной системе, наиболее рациональной организации таких систем для хранения и поиска информации, а также о существовании и свойствах алгоритмов преобразования информации. Конструкторы устройств хранения данных проявляют чудеса изобретательности, увеличивая объем и плотность хранения данных на дисках, но в основе этой деятельности лежат теория информации и теория кодирования. Для решения прикладных задач существуют замечательные программы, но для того, чтобы грамотно поставить прикладную задачу, привести ее к виду, который подвластен компьютеру, надо знать основы информационного и математического моделирования и т.д. Только освоив эти разделы информатики, можно считать себя специалистом в этой науке. Другое дело - с какой глубиной осваивать; многие разделы теоретической информатики достаточно сложны и требуют основательной математической подготовки. В большинстве случаев они излагаются ниже, скорее, в ознакомительном порядке, с целью составить о них отчетливое представление.

Кибернетика как наука возникла достаточно давно. Однако развивалась неравномерно, довольно долго добиваясь признания ученых, критически настроенных к тем постулатам, которых придерживалась «наука об управлении людьми». Математик и физик Андре-Мари Ампер в своем знаменитом труде «Очерки по философии наук» определил кибернетику в разряд политических наук. Однако за последующие века интерес к этой науке был окончательно утрачен, да и само слово на некоторое время исчезло с горизонта не только обычных обывателей, но и научного сообщества.
Новое рождение кибернетика получила в тот момент, когда технический прогресс подошел вплотную к проблематике обработки информации. В середине 20 века несколько фактором предопределили перспективы развития кибернетической науки. Сначала Дж. фон Нейман изобретает ЗВМ, а в 1948 г. Роберт Винер публикует свою книгу «Кибернетика или Управление и связь в живых организмах и машинах», В этой книге ученый определяет кибернетику как науку, которая изучает управление как общий механизм, свойственный человеку, животному и машине.
Мощный скачок в развитии вычислительных приборов, огромный прогресс научных дисциплин, связанных с математикой и физикой, послужило также трамплином и для кибернетики. Сам термин через некоторое время потерял свое широкое, естественнонаучное значение, сосредоточившись лишь в областях сугубо физико-математических и информационных. Неудивительно, что термин «кибернетика» вскоре постепенно был заменен более точным и узкоспециальным словом «информатика».
Возрождение кибернетики связывают с интернетом, который постепенно проникает во все области современной жизни и робототехники, перспективы развития которой становятся все более ясными. Ученые считают, что время кибернетики еще впереди. Она будет тем самым звеном, которое свяжет человека, окружающую среду и разумные кибернетические системы.

Давайте посмотрим что такое URL, зачем он нужен и из каких частей состоит. Как вы знаете, поисковые системы производят индексацию сайтов ни как единого целого, а как совокупность отдельных web страниц. Ну так вот, любой документ (web страница) в сети интернет имеет свой уникальный адрес, который очень часто называют аббревиатурой URL (урл), которая расшифровывается как Uniform Resource Locator (определитель местонахождения ресурса). URL, равно как и протокол HTTP, а так же как и язык гипертекстовой разметки Html с валидатором W3C, был разработан и создан одним и тем же человеком — Тимом Бернерсом-Ли (отцом основателем проекта Всемирная паутина WWW — World Wide Web). По большому счету URL является частным случаем другого идентификатора под названием URI (Uniform Resource Identifier — унифицированный идентификатор ресурса).                                                                                               URL адрес — это способ однозначно указать на что-то в интернете. URL используется не только для работы с сайтами по протоколу http, но нас, конечно же, будет интересовать именно применение идентификатора URL применительно к Web (протоколы http и https). Например, URL применительно к Web будет выглядеть примерно так (чуть ниже я приведу общую блок-схему построения URL, но пока хотелось бы начать с простого частого примера):
1
http://hatypova.blogspot.com
В этом примере URL часть «http» обозначает протокол передачи данных или же, если следовать терминологии спецификации URL, схему (ибо тот же mailto не является протоколом передачи данных, в отличии от http или ftp, но используется в URL адресах). Далее в приведенном примере URL адреса следует «hatypova.blogspot.com» (или же это может быть «www.hatypova.blogspot.com») — это так называемое доменное имя или же имя узла (хоста). В Web-е есть специфика обозначения доменного имени в URL адреса сайта — доменное имя может быть с WWW или без WWW.  Т.е. для поисковиков сайты с WWW или без WWW являются абсолютно разными и без их склейки, ссылочная масса будет делиться между ними в неизвестной вам пропорции. WWW в URL адресе по своей сути — это некий атавизм, который делает ваше доменное имя второго уровня доменом третьего.                                                                            Ничего плохого в использовании WWW в URL адресе сайта нет, но нужно четко определить главное зеркало (через Яндекс Вебмастер и через Гугл Вебмастер, а так же через прописывание директивы Host в файл robots.txt вашего сайта), которое будет индексироваться поисковиками и которое будет участвовать в ранжировании.
 Та часть URL, которая расположена за третьим слешем (/) — в нашем примере это «papka/fail.html», называется путем до конкретного документа или файла. В нашем случае — это документ «fail.html», который лежит в папке «papka», которая в свою очередь лежит в корневой папке сайта (корне сервера, который в URL всегда соответствует третьему слешу).
Но это еще не все, что может быть записано в URL адресе. Посредством URL различные движки сайта (CMS) передают так называемые GET параметры, которые добавляются в самый конец URL адреса веб страницы после простановки знака вопроса, например, так:
1
http://www.ktonanovenkogo.ru/papka/fail.html?print=yes
(даже по трем — еще и http://ktonanovenkogo.ru/) и в любом случае откроется главная страница. Это довольно плохо, т.к. поисковики найдут у меня три разных страницы (имеющих с их точки зрения разные URL адреса), но с одинаковым содержанием, что поисковикам ох как не нравится. Поэтому у меня сделано так, что при вводе любого из приведенных чуть выше URL адресов будет выполнено перенаправление на URL вида «http://ktonanovenkogo.ru/». Делается это, как правило, с помощью 301 редиректа в файле .htaccess, либо напрямую в настройках сервера вами самими, либо вашим хостером.

четверг, 17 мая 2012 г.

Вот пример более эффективного использования QR кода

Все чаще на упаковках, товарах и страницах в Интернете мы видим черно-белые квадраты, отдаленно напоминающие знакомые с детства штрих-коды, которые размешаются практически на всех упаковках. Это и есть видоизмененные штрих-коды, которые называются QR-код.

Как читать «квадратики»?

Для сканирования QR-кода ваше мобильное устр-во должно иметь камеру. Также на нем должно быть предустановлено специальное приложение, позволяющее считывать и распознавать QR-код.

QR-код — что это за зверь?


QR-код — двухмерный штрих-код, содержащий определенную информацию. Аббревиатура QR означает «quick response», что в переводе с английского — «быстрый отклик».
Самое главное достоинство QR-кода, благодаря которому он получил широкое распространение, это легкое и быстрое распознавание сканирующим оборудованием. Это привело к активному использованию QR-кодов в различных сферах жизни человека: в производстве, торговле и даже туризме
Очень широко их используют владельцы мобильных устройств. После установки в аппарат специальной программы, позволяющей распознавать код, пользователь получает возможность мгновенно выполнять ряд действий — заносить в телефон текстовую информацию, переходить по ссылкам, скачивать нужные приложения.
QR-код — взгляд в историю
На сегодняшний день наибольшее распространение QR-коды получили в Японии. Связано это с тем, что японцы прежде весьма активно использовали штрих-коды. Постепенно зашифрованного в коде объема информации стало не хватать. Начались эксперименты с другими способами кодирования данных в графической картинке. В итоге в 1994 г. компания «Denso-Wave» (Япония) разработала QR-код. 10 лет назад в Японии QR-коды уже можно было увидеть на большом количестве товаров, упаковок и плакатов. Сегодня их размещают практически на всех товарах, в справочниках, буклетах. Быстрыми темпами развивается использование QR-кодов в Америке и Европе.
Как читать «квадратики»?
qr-кодДля сканирования QR-кода ваше мобильное устройство должно иметь камеру. Также на нем должно быть установлено специальное приложение, позволяющее считывать и распознавать QR-код. Для распознавания QR кода существует ряд программ. Для Android устройств наиболее популярной является Barcode Scanner. Телефоны с новыми версиями прошивок уже содержат ее. Если же у вас этого приложения нет, вы можете скачать его в Android Market. Допустим, вы наткнулись в Интернете на интересующую вас программу, которую бы хотели установить на свое мобильное устройство. Если на странице рядом с программой размещен QR-код, вам не понадобится руками вбивать ссылку на нее в адресную строку браузера на мобильном устройстве. Достаточно открыть программу-распознавалку кода и поднести телефон к монитору. После считывания и распознавания кода вам будет предложено открыть браузер, чтобы скачать нужное вам приложение.    
Можно ли самостоятельно создать QR-код?
Однако нередко возникают ситуации, когда на странице с нужной программой QR-код отсутствует. В этом случае помогут генераторы такого кода. У нас на сайте вы можете воспользоваться онлайн генератором QR кода. С его помощью сгенерировать код весьма просто. Всего лишь заполните форму и нажмите кнопку «Генерировать». Все. Ваш QR-код готов. Таким образом вы можете зашифровать любую информацию: адрес сайта, электронный ящик, номер телефона или просто текст.




Скорее всего Вы уже знаете что такое капча, возможно просто видели ее, но не знали как называется эта кривая и раздражающая картинка, которую нужно вводить на каждом шагу. Так вот, для тех, кто не знал — это капча (captcha). Это вынужденная мера, потому, что капча защищает ресурсы от спама и повышенной нагрузки при атаке ботов. Например,кто то захочет  раскрутить свой блог, знающий так же немного о php и C#, следовательно теоретически он может написать бота и отправит его покорять тот же «вконтакт». Он будет резво бегать по стенам, регистрироваться в группах,  спамить в комментариях и везде добавлять ссылку на мой сайт под любым предлогом. Но вот незадача, при любом действии он должен вводить  капчу. Таким образом ввод капчи защищает вконтактик и остальные ресурсы от спама, мусора и от взломщиков.
Однако и капча не всегда помогает, ведь на каждый замок можно найти ключ, иначе этот замок тупо сломан и бесполезен. Большинство капч можно распознать нейронными сетями, предварительно натаскав их на многочисленных (несколько десятков, а то и сотен тысяч) примерах. Эти примеры подготавливают добровольцы, которые днями напролет за мизерное вознаграждение сидят и вбивают эти капчи (они пытаются заработать в интернете, но делают это неправильно).

Какие бывают captcha?

Примеры:
ввод капчираспознавание капчиCaptcha (капча)
Теперь перейдем к более  интересным примерам. К таковым можно отнести капчу, где нужно выставить вертикально 3 картинки. На мой взгляд одна из наиболее крутых придумок в этой области, просто потому, что она не раздражает, а даже наоборот, увлекает и забавит :) Это даже не ввод captcha, а просто мини игра.
ввод капчиCaptcha (капча)
Далее хотелось бы пару слов сказать про математическую капчу. Она может быть как простой, так и сложной. Лично мне нравится капча, где требуется сложить или вычесть два числа. Это гораздо удобней, чем сидеть и разбирать кривой текст. Однако, если вы не умеете считать, то могут возникнуть проблемы ;)
Примеры:
ввод капчиввод капчи
Ну и в заключение самая крутая, по мнению некоторых блогеров, капча — «поставь галочку». Они считают, что этого достаточно, но не подозревают, что программно поставить галочку это дело примерно 2 минут :)Ведь при этом ввод капчи как таковой не происходит, а происходит изменение параметра CheckBox’a.
Captcha (капча)
Ну вот и все. Теперь вы знаете что такое капча (captcha) и представляете, примерно, какими они могут быть.