Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Wietnamskie dzieci kontra komputer – starcie gigantów

Internet, globalna Sieć, net. Niezależnie jak to nazwiemy, mamy na myśli to samo – bogate źródło informacji o prawie wszystkim wzbogacone szeroką gamą zdjęć z kotełami i piesełami. Nie zabrakło również całych kolekcji sweet foci oraz plików instalacyjnych maści wszelakiej. Wśród tego natłoku informacji natknąłem się na ciekawe zdjęcie, które zostanie przedrukowane w kolejnym wydaniu ………………………. (w sumie mogę je udostępnić od razu bo jesteśmy zalogowani do tej samej Sieci).

Oto ono:

Proste zadanie matematyczne dla dziecka z 2 kl. podstawówki. Nie może być trudne bo dziecko ledwo potrafiące czytać nie poradziłoby sobie z nim. Tak myślałem aż do 435 ms od momentu wpatrzeniu się w obrazek. Chwilę później (jakieś 826 ms później) stwierdziłem, że to zapewne fake. Nie dawało mi to jednak spokoju. Jadąc komunikacją miejską przez miasto chwyciłem kartkę i próbowałem znaleźć poprawną kombinację liczb gwarantującą sukces. Udało się wpisać w każde pole cyfrę od 1 do 9 tak, by wynik się zgadzał. W zadaniu jest tylko jeden haczyk. W lukę ma wejść jedna cyfra, a luk jest akurat 9. Oznacza to, że liczby w całym działaniu nie powinny się powtarzać. Zresztą tak wynika z treści zadania. Takie podejście utrudnia znacząco wskazanie odpowiednich cyfr. Jeśli ja mam problem z rozwiązaniem tego zadania to co ma począć biedny 8-latek. Postanowiłem zatem podejść do problemu w nieco inny sposób.

r   e   k   l   a   m   a

Schowałem kartkę i wyciągnąłem tablet. Poszukałem edytora kodu HTML w sklepie Google Play , zainstalowałem i uruchomiłem. Postanowiłem rzecz jasna napisać skrypt, który wypisze mi cyfry pasujące w luki. 9 miejsc, w które należy wpisać jedną z 9 wartości. Wszystkich kombinacji jest zatem 9 do potęgi 9, co daje dokładnie 387420489. Jeśli dla kogoś to tylko ciąg cyferek to podkreślę, że mamy do czynienia z liczbą na poziomie pół miliarda. Przeliczenie na papierze każdej kombinacji nie byłoby możliwe. Zakładając, że moglibyśmy na to poświęcić 50 lat, dzień w dzień musielibyśmy obliczać wartość ponad 21000 działań arytmetycznych (14 działań na 13 liczbach w ciągu minuty), nie śpiąc przy okazji. Komputerowi (a konkretnie tabletowi opartemu o procesor Intel Atom 2 x 2GHz) to zadanie zajęło ponad minutę. Podana przeze mnie liczba wszystkich kombinacji zakłada, że cyfry mogą się powtarzać. Jeśli wynik działania arytmetycznego w rezultacie ma wynosić 66, to możemy podstawić cyfry na 442232 sposoby. Takie założenie daje szanse trafienia prawidłowego wyniku (przynajmniej jednego). Prawdopodobieństwo takiego wyczynu jest równe 0,1%. Niby mało, ale szóstkę w totka trudniej trafić.

Z zadania jednak jasno wynika, że dwie luki nie powinny przechowywać tej samej wartości. Przy takim założeniu wszystkich możliwości jest 9! (czyt. dziewięć silnia czyli 9*8*7*6*5*4*3*2*1). Obliczając ten skomplikowany iloczyn wyjdzie nam 362880. Nie jest to już liczba tak potężna jak powyżej. Na znalezienie wszystkich prawidłowych rozwiązań, licząc każdą wartość na papierze, moglibyśmy poświęcić 10 lat. Każdego dnia musielibyśmy wtedy wyliczać 100 wartości (co najważniejsze, znajdziemy czas na sen). Tylko dla 0,03% liczonych wartości uzyskamy odpowiedni wynik. Kombinacji liczb spełniających oba warunki jest dokładnie 128 (czyli niewielka część z pół miliarda).

Wczytując się jeszcze raz w treść zadania przypomnimy sobie, że jest to rzekomo zadanie na poziomie 2 kl. SP. Podczas obliczania wartości działania na dowolnych liczbach może dojść do powstania ułamków. Ułamków dzieci uczą się dopiero w 5 kl. SP (przynajmniej w polskiej szkole). Zakładając, że w Wietnamie nie rodzą się same dzieci geniusze, należy wykreślić z listy 128 wartości, te których wynik pośredni posiada wartość ułamkową. Takich kombinacji jest już tylko 20.

Oto ono:


Wariant 1: 3, 2, 1, 5, 4, 7, 8, 9, 6
Wariant 2: 3, 2, 1, 5, 4, 7, 9, 8, 6
Wariant 3: 5, 2, 1, 3, 4, 7, 8, 9, 6
Wariant 4: 5, 2, 1, 3, 4, 7, 9, 8, 6
Wariant 5: 5, 3, 1, 7, 2, 6, 8, 9, 4
Wariant 6: 5, 3, 1, 7, 2, 6, 9, 8, 4
Wariant 7: 5, 4, 1, 9, 2, 7, 3, 8, 6
Wariant 8: 5, 4, 1, 9, 2, 7, 8, 3, 6
Wariant 9: 5, 9, 3, 6, 2, 1, 7, 8, 4
Wariant 10: 5, 9, 3, 6, 2, 1, 8, 7, 4
Wariant 11: 6, 3, 1, 9, 2, 5, 7, 8, 4
Wariant 12: 6, 3, 1, 9, 2, 5, 8, 7, 4
Wariant 13: 6, 9, 3, 5, 2, 1, 7, 8, 4
Wariant 14: 6, 9, 3, 5, 2, 1, 8, 7, 4
Wariant 15: 7, 3, 1, 5, 2, 6, 8, 9, 4
Wariant 16: 7, 3, 1, 5, 2, 6, 9, 8, 4
Wariant 17: 9, 3, 1, 6, 2, 5, 7, 8, 4
Wariant 18: 9, 3, 1, 6, 2, 5, 8, 7, 4
Wariant 19: 9, 4, 1, 5, 2, 7, 3, 8, 6
Wariant 20: 9, 4, 1, 5, 2, 7, 8, 3, 6

Jak widać zadanie, nie dosyć, że ma prawidłowe rozwiązanie, to na dodatek ma ich całą masę. Do określenia prawidłowej kombinacji cyfr napisałem skrypt, bo nie wyobrażam sobie przeliczać wszystkich możliwości . Mógłbym również próbować wydedukować rozwiązanie, ale byłoby to dość trudne i bardzo czasochłonne. A co ma powiedzieć 8 latek z Wietnamu? A dlaczego w ogóle z Wietnamu? Czyżby w okolicy Państwa Środka rodziły się dzieci z najwyższym IQ na całym świecie? Nie sądzę. Dlaczego zatem twórca grafiki nie wspomina o amerykańskich dzieciach, tych z Placu Pigalle, czy co byłoby najbardziej naturalne – o polskich dzieciach?

Rysunek być może powstał po przeczytaniu artykułu o tym, jak wygląda nauka informatyki w jednej z wietnamskich szkół. Redaktor twierdzi, że dzieci już od najmłodszych lat uczą się programować na lekcjach informatyki. Sprzęt, który wykorzystują, raczej nie zadowolił by polskich nastolatków. Co ja mówię. Jeśli postawilibyśmy go przed polską młodzieżą, usłyszelibyśmy donośny śmiech. Mimo to, już w 4 i 5 klasie azjatycka młodzież uczy się programu Logo tresując żółwia. Nastolatkowie rozwiązują skomplikowane „zagadki matematyczne” wykorzystując przy tym pętle i warunki. Neil Fraser, inżynier oprogramowania w Google'u, którego przemyślenia związane z pobytem w azjatyckim państwie, opisał twórca artykułu, jest pozytywnie zaskoczony poziomem nauki tego przedmiotu.

pomimo skromnych środków osiągane efekty przekraczają najśmielsze oczekiwania

Ponadto inżynier Google’a dostrzega ogromne różnice w nauce przedmiotu w amerykańskiej i azjatyckiej szkole. Według Fraser’a amerykańska szkoła w porówaniu z wietnamską nie jest w stanie zaoferować więcej (raczej oferuje dużo dużo mniej pod tym względem). Na poziomie klasy 11 i 12 (odpowiednik klasy 2 i 3 liceum) uczniowie mogą trafić na następujące zadanie.

Dodam, że jeden z programistów Google’a zakwalifikował to zadanie jako bardzo trudne i uznał, że pod względem trudności mogłoby się ono znaleźć w pierwszej trójce zadań, z którym trudziliby się potencjalni nowi pracownicy firmy na rozmowie kwalifikacyjnej.

Zadanie przedstawione na pierwszej grafice, jak się okazuje, nie jest tylko ciągiem nic nie znaczących bitów. Idzie je rozwiązać na 20 różnych sposobów. Należy jednak wspierać się technologią informatyczną. Twórca grafiki jak widać nie przypadkowo posługuje się przykładem wietnamskich dzieci, jednak wspomina o 8-latkach a nie nastolatkach, jak wynika to z relacji Fraser’a. Grafika jest zatem nie do końca prawdziwa, a zadanie, które na pierwszy rzut oka wydaje się niemożliwe do rozwiązania przy wykorzystaniu konwencjonalnych metod, staje się zadaniem do wykonania w dość krótkim czasie przy wykorzystaniu komputera. Właśnie w ten sposób wietnamska młodzież miała by sobie poradzić z tym zadaniem .

Nie wiem, czy szkoła, którą odwiedził Fraser jest odzwierciedleniem wietnamskiego systemu oświatowego. Wiem jednak, że polska młodzież coraz gorzej radzi sobie z matematyką. Sporą część maturzystów próbuje zdać egzamin z tego przedmiotu metodą „na totolotka”. Zadania trafiają się różne. Niektóre wymagają głównie logicznego myślenia, a i tak sprawiają ogromny problem. Z informatyką nie jest również kolorowo. Zajęcia wyglądają tak jak wyglądają, a młodzież twierdzi, że programowanie jest niesłychanie trudne i broni się przed nim rękoma i nogami.

Morał z tej bajki jest prosty i niektórym znany. Uczmy się matmy i programowania. Bez niej nie istniał by świat, budynki, drogi czy mosty. Gdyby nie wiedza inżynierska, żylibyśmy jak w czasach dzikich plemion afrykańskich. Nawet przy tak trywialnej czynności , jak robienie zakupów, bez umiejętności liczenia, możemy zostać oszukani. Nie wspominałbym o tym, gdybym nie wiedział, że niektórym sprawia kłopot podanie iloczynu liczb 6 i 8. Samo słowo „iloczyn” powoduje nieraz konsternację. Takich kwiatków jest niestety więcej. Programowanie natomiast rozwija logiczne oraz analityczne myślenie, które ułatwia funkcjonowanie we współczesnym świecie. Nie każdy od razu musi być geniuszem i pracować w Google czy w Microsofcie. Chodzi o to, że programowanie pobudza nasze szare komórki do pracy, a to jest dobre dla naszego mózgu. Gdyby nie umiejętności programistyczne moglibyśmy zapomnieć o istnieniu sklepów internetowych, bankowości online a nawet o Facebooku. A po drugie nie możemy być przecież gorsi od wietnamskich dzieci.

Cytat zamieszczony we wpisie (fragment wypowiedzi Fraser'a) oraz jedna z grafik pochodzi z portalu gazeta.pl. Druga grafika została pobrana z portalu besty.pl.

Skrypt:


document.write("<H1>Działanie ...+13*.../...+...+12*...-...-11+...*.../...-10=66</H1>");
ilosc=Math.pow(9,9); //ilość wszystkich kombinacji z powtórzeniami
document.write("Liczba wszystkich kombinacji: <B>"+ilosc+"</B><br>");
licznik=0; //liczy liczbę kombinacji zgodną z warunkami
numer=0; //określa numer kombinacji (nie bierze pod uwagę żadnego warunku oprócz tego że puste pole może być wypełnione dowolną cyfrą) 
ostatni=0; //zwraca numer ostatniej kombinacji ze wszystkich możliwych, który spełnia warunek dotyczący wyniku
document.write("Liczba kombinacji przy założeniu że liczby nie mogą się powtarzać wynosi: ");
for(k=1;k<=9;k++) //pętla for wylicza wartość silni
{
if(k==1)
{
liczbabezpowt=1;
}
else
{
liczbabezpowt=liczbabezpowt*k;
}
if(k==9)
{
document.write("<B>"+liczbabezpowt+"</B><BR><BR>");
}

}
document.write("<FONT SIZE=5><I>Wszystkie warianty rozwiązania zadania</I></FONT><BR>");

for(a=1;a<=9;a++) //obliczanie wartości poszczególnych kombinacji
{
for(b=1;b<=9;b++)
{
for(c=1;c<=9;c++)
{
for(d=1;d<=9;d++)
{
for(e=1;e<=9;e++)
{
for(f=1;f<=9;f++)
{
for(g=1;g<=9;g++)
{
for(h=1;h<=9;h++)
{
for(i=1;i<=9;i++)
{
z=a+13*b/c+d+12*e-f-11+g*h/i-10; //wyrażenie arytmetyczne
numer++;
if(z==66)
{
	if(a!=b&a!=c&a!=d&a!=e&a!=f&a!=g&a!=h&a!=i&b!=c&b!=d&b!=e&b!=f&b!=g&b!=h&b!=i&c!=d&c!=e&c!=f&c!=g&c!=h&c!=i&d!=e&d!=f&d!=g&d!=h&d!=i&e!=f&e!=g&e!=h&e!=i&f!=g&f!=h&f!=i&g!=h&g!=i&h!=i)
	{
		
		if(b%c==0)
		{
		licznik++;	
		document.write("Wariant "+licznik+ ": "+a+", "+b+", "+c+", "+d+", "+e+", "+f+", "+g+", "+h+", "+i+"<BR>");
		ostatni=numer;
		}
	}
}
if(licznik==1)
{
pierwszy=numer; //zwraca numer pierwszej kombinacji ze wszystkich możliwych, który spełnia warunek dotyczący wyniku
}
//kończenie kolejnych pętli for
}
}
}
}
}
}
}
}
}
document.write("<BR>Istnieje <B>"+licznik+ " </B>rozwiązań (zakładając że liczby nie mogą się powtarzać i że nie pracujemy na ułamkach)<BR>");
document.write("Wszystkich kombinacji (zakładając powtórzenia) jest<B> "+ilosc+" </B><BR>");
document.write("Wszystkich kombinacji bez powtórzeń jest<B> "+liczbabezpowt+"</B><BR>");
prawdop=licznik/liczbabezpowt; //obliczanie wartości prawdopodobieństwa trafienia odpowiedniej kombinacji
procprawdop=prawdop*100; //zamiana wartości prawdopodobieństwa na procenty
document.write("Prawdopodobieństwo trafienia dobrego rozwiązania z kombinacji bez powtórzeń wynosi:<B> "+procprawdop+"%</B><BR>");

UWAGA! Skrypt liczy każdą z pół miliarda wartości. Trzeba uzbroić się w cierpliwość (na Sony Xperia Z Compact wynik generuje się w około 30s).

 

programowanie

Komentarze