miercuri, 16 ianuarie 2008

Probleme de logica

Intotdeauna mi-au placut problemele de logica, de la cele mai simplute probleme de matematica la puzzle-uri mai complexe, la probleme amuzante.

Astfel de probleme/ghicitori circula inca din vremurile antice, cand Arhimede le compunea pentru colegii sai matematicieni, ca de exemplu:

Daca trei gaini fac trei oua in trei zile, cate oua face o gaina pe zi?


Daca facem niste calcule rapide o sa obtinem 3/3/3 = 1/3 oua pe zi.
Raspunsul corect ar fi 0 sau 1 ou, o gaina nu poate face o treime de ou intr-o zi, decat daca procesul dureaza foarte mult :D

O problema amuzanta la care eu nu i-as fi ghicit raspunsul este urmatoarea:
Fie 3 becuri normale si doua camere izolate.
In prima camera se afla cele 3 becuri iar in a doua camera se afla 3 intrerupatoare, fiecare intrerupator aprinde un singur bec din camera alaturata.
Daca ai dreptul la oricate apasari pe intrerupatoare si ai dreptul sa intri o singura data in camera cu becuri, poti afla ce bec aprinde fiecare dintre cele 3 întrerupatoare?


Raspunsul este da, si iata cum se procedeaza: se apasa primul intrerupator, se lasa aprins un timp, apoi se inchide, si se aprinde al doilea intrerupator. Daca in acest moment intri in camera cu becurile, vei vedea becul aprins care apartine intrerupatorului 2 care este apasat, iar daca punem mana pe unul din becurile stinse, cel cald va apartine primului intrerupator, iar cel rece intrerupatorului nr 3, care nu a fost actionat :) Usor, nu? Iata un exemplu de "lateral thinking" aici.

O alta problema este urmatoarea:
Se dau doua sfori care ard fiecare in exact o ora.
Sa se masoare 45 de minute. Stii ca sforile nu ard uniform.


Raspunsul implica aici mai mult folosirea logicii matematice conventionale.
Raspunsul foloseste urmatoarea idee: daca dam foc la o sfoara la ambele capete, ea va arde in jumatate de ora.
Deci vom da foc la prima sfoara la ambele capete, iar la cea de-a doua la doar un capat. Cand prima arde complet, dam foc si la celalalt capat al celelaltei sfori si obtinem 45 de minute :)

Problemele de matematica ce implica probabilitati mi se par din nou foarte provocatoare si interesante prin descoperirea pe care o faci cu raspunsul corect, care de multe ori nu pare usor intuitiv.
Iar o problema cunoscuta sub numele de Monty Hall este urmatoarea:

Inchipuiti-va ca sunteti la un concurs si proba consta in a alege o usa, din trei existente, pe care o deschideti in final si castigati ce se afla in spatele usii. Se stie dinainte ca in spatele unei usi este o masina frumoasa, iar in spatele celorlalte doua se afla doar o capra.
Concursul presupune sa alegeti una dintre usi, iar inainte sa o deschideti prezentatorul deschide una dintre celelalte doua usi (el stie unde este masina) si in spatele usii pe care a deschis-o este o capra.
In continuare vi se da optiunea de a ramane la alegerea pe care ati facut-o initial, sau a schimba cu cealalta usa inchisa.
Ati schimba usa?


Eu as schimba-o, moderatorul influenteaza probabilitatile deoarece el stie unde se afla masina si sansele o sa mi se dubleze daca schimb usa!
Probabilitatea ca eu sa ghicesc usa corect este 33%. Probabilitatea ca masina sa fie in celelalte 2 usi este de 66%. Daca prezentatorul tocmai mi-a aratat o usa necastigatoare in setul 2, cealalta usa va capata o probabilitate de 66%.
Sa presupun ca eu aleg usa cu masina. Daca schimb usa dupa ce prezentatorul imi arata o capra, o sa pierd.
Daca aleg usa cu capra numarul 1, si schimb usa, o sa castig.
La fel o sa castig daca aleg usa cu capra numarul 2, si apoi schimb.
Deci 66% sanse sa castig daca schimb usa!
Raspunsul este mai intuitiv daca maresc numarul de usi la o suta, aleg o usa, iar apoi prezentatorul imi deschide din cele 99 de usi ramase 98 in spatele carora se afla cate o capra. Probabilitatea ca usa ramasa sa aiba masina este de 99% acum.

Un puzzle dragut este cel lasat de Einstein:
- Sunt cinci case diferite, fiecare pictata in alta culoare. In fiecare casa
locuieste o persoana de alta nationalitate, care prefera propria sa bautura,
diferita de a celorlalti.
Fiecare om are pe langa el un animal distinct si fumeaza o marca distincta de
tigari.
Se fac urmatoarele afirmatii:
1. Englezul locuieste in casa rosie.
2. Suedezul are un caine.
3. Danezul bea ceai.
4. Casa verde este la stanga casei pictata in alb.
5. Persoana din casa verde bea cafea.
6. Persoana care fumeaza Pall Mall creste pasari.
7. Persoana din casa galbena fumeaza Dunhill.
8. Persoana din casa din mijloc bea lapte.
9. Norvegianul locuieste in prima casa.
10. Persoana care fumeaza Blend locuieste in casa vecina celei unde se cresc pisici.
11. Persoana care creste cai locuieste langa cel care fumeaza Dunhill.
12. Persoana care fumeaza Blue Master bea bere.
13. Germanul fumeaza Prince.
14. Norvegianul locuieste alaturi de casa vopsita in albastru.
15. Cel care fumeaza Blend este vecin cu persoana care nu bea decat apa.
Intrebarea este: Cine creste pesti?


Nu o sa postez aici raspunsul, problema nu este foarte dificila, implica doar putin timp si atentie. Eu am desenat casele una langa alta si am adaugat rand pe rand cate o conditie.

Ca sa inchei cu o nota vesela, iata urmatoarea intrebare:
"... intreaga mea avere o las celui al carui armasar va ajunge ultimul in cursa de la Taif", spuse seicul cu ultima suflare celor doi fii ai sai.
Amandoi dorindu-si imensa avere a seicului, stau neclintiti pe armasarii lor in piata, pana cand un batran intelept ii cheama. Fiii descaleca si se duc la el, iar inainte ca batranul sa termine sa le sopteasca ceva, o iau la goana, se urca fiecare in sa, si o iau la goana spre Taif.
Cred ca v-ati dat seama ce le-a soptit batranul, nu? :))

duminică, 16 decembrie 2007

femeile in IT

Desi numarul femeilor care lucreaza in IT este destul de mare (oficial, 25% in State) suntem in continuare privite ca o ciudatenie. De ce ar alege o femeie o asemenea meserie? Mie mai interesant mi s-ar parea raspunsul la intrebarea "De ce nu?"


Femeile au aparut in industria calculatoarelor inca din anii 1800, cand Ada King Lovelace , fiica lordului Byron s-a interesat si a publicat detalii despre calculatorul analitic al lui Charles Babbage. Ada Lovelace a fost considerata primul programator de calculatoare si limbajul de programare Ada este numit in onoarea ei.
Tot de numele unei femei se leaga si primul compilator pentru un limbaj de programare :). Grace Murray Hopper a fost printre primii progamatori pe calculatorul Harvard Marc I , considerat de unii primul calculator universal.


Lista femeilor care au influentat industria IT nu este lunga, dar ea poate continua cu:

  • Kay McNulty, Betty Snyder, Marlyn Wescoff, Ruth Lichterman, Betty Jennings, si Fran Bilas, programatoare pe ENIAC

  • Jean E. Sammet (1928), matematician si inginer in calculatoare; a dezvoltat limbajul de programare FORMAC
  • Irma Wyman, director informatica la Honeywell

  • Sally Floyd , cunoscuta pentru munca ei la protocoale de Control de Transmisie

  • Frances E. Allen, laureata a premiului Turing oferit de ACM
  • Shafi Goldwasser, care a primit de doua ori premiul Gödel oferit pentru articole exceptionale legate de teoria stiintei calculatoarelor
  • Adele Goldberg, unul dintre designerii si dezvolatatorii limbajului de programare Smalltalk
  • Sa speram ca numarul femeilor din industria IT va creste, deoarece dupa cum spunea Lenore Blum, inginer in stiinta calculatoarelor de la Universitatea Carnegie Mellon, "Femeile sunt precum canarii intr-o mina de carbuni", aduc lumina si dicteaza tendinte. Mai multe detalii despre prezenta femeilor in IT si motive pentru numarul relativ redus al acestora in acest camp puteti citi intr-un articol din NY Times peste care am dat pentru ca fata din centru a fost colega de facultate cu mine.