Showing posts with label science. Show all posts
Showing posts with label science. Show all posts

Friday, September 25, 2009

Отличный пример для объяснения импликации

Существует логическая операция, называемая импликацией [1] (обозначается стрелочкой)
Обычно она объясняется как "посылка -> следствие"
Стандартно у преподавателя возникает небольшая заминка с тем, какой пример выбрать для иллюстрации таблицы итинности данной операции. Наиболее удачное из того, что я слышал: x={"Студент сдаст хорошо сессию"} y={"Папа купит ему машину"}. Однако, это не совсем удачная иллюстрация, потому что как-то не очень близка к действительности. Напомню, что x->y == 0 только в том случае, если студент действительно хорошо сдал сессию, а папа машину ему не купил (наоборот, если студент сдал плохо, а папа купил ему машину, то папу лжецом уж точно не назовёшь).

Внезапно однажды на занятии у меня родилась шикарная идея, какие два события лучше подходят для описания: x={"Девушка забеременела"}, y={"Её мальчик на ней женился"}. Тогда x->y = {"Если девушка забеременела, мальчик на ней женился"}. Действительно, если девушка не забеременела, а мальчик не женился, никакого обмана не произошло, и x->y истинно, если девушка не забеременела, а мальчик, тем не менее, женился, то он, бесспорно, благородный дон и высказывание x->y всё равно истинно (никто никого не обманул). Если же девушка забеременела и парень женился, то всё опять же истинно (мужик сказал - мужик сделал!). Однако, если же девушка забеременела, а парень на ней не женился, он, конечно же, козёл. И в этом месте даже самые отстающие школьники понимают, что информатика гораздо ближе к жизни и радостно поддакивают своими милыми мордашками "козёл, конечно!".

---

[1] http://ru.wikipedia.org/wiki/Импликация

Wednesday, March 4, 2009

Digitizers & awk helps a lot

Понадобилось перевести картинку в набор точек. Оказалось, существует целый набор подобных программ, назваются Дигитайзеры. Я использовал Engauge Digitzer: ( например, тут можно его скачать http://linux.softpedia.com/progDownload/Engauge-Digitizer-Download-1240.html )

Использование этой штуки крайне интуитивно, просто расставляются точки, устанавливаются опорные точки, и вуаля - на выходе csv готово. Засунуть в код можно простым и грубым способом через awk:
awk {print "points[" NR-1 "].set(" $1 "," $2 ");"} Armko.csv

Криво и через задницу, зато работает. А конкструктор можно переписать, когда уже будет отлажена функциональность