listopad 2010

Data ostatniej modyfikacji:
2010-12-18

Zad. 1. Używając tylko jedynek i znaków czterech działań arytmetycznych (dzielenie jest na komputerze oznaczane zwykle przez "/"), utwórz jak najkrótszy napis, który wpisany w google da odpowiedź 2010.

Zad. 2. Jaka jest 3456. cyfra liczby 20102011? Wskazówki: 1. potęgowanie jest na komputerze oznaczane zwykle przez "^", 2. pomocna może być witryna wolframalpha.com lub program Maxima.

Zad. 3. Co jest przyczyną, dla której w wielu językach programowania istnieje taka wartość a, przy której program "x:=0; dopóki x<a, zwiększ x o 1" może działać "w nieskończoność"?

 

Wyniki: 

W listopadowej rywalizacji zwyciężyła Krystyna Lisiowska, redaktor z Warszawy, zdobywając 3 pkt. Po 2,5 pkt uzyskali Adam Balawender z ZSO w Strzegomiu i Paweł Florczuk z XIV LO we Wrocławiu.

W rankingu Ligi Kalkulatorowo-Komputerowej prowadzą aktualnie:

  • z 6 pkt - Krystyna Lisiowska z Warszawy,
  • z 5,5 pkt - Paweł Florczuk z Brzegu (uczeń XIV LO we Wrocławiu),
  • z 4 pkt - Wojciech Tomiczek z Lipowej.

Gratulujemy!

 

Odpowiedzi: 

Zad. 1. Większość Ligowiczów podała napis 22-znakowy: 1111+1111-111-111+11-1, z ew. zmienioną kolejnością dodawań lub odejmowań. Innym działaniem, które jako napis google'owy liczy 22 znaki, jest przykład Michała Żłobickiego z Wrocławia: (11111+11111-111-1)/11, natomiast Daria Bumażnik z Piechowic i Krystyna Lisiowska z Warszawy znalazły napis rekordowy - 21-znakowy: 1111+1111-1111/11-111.

Zad. 2. Dzięki programom, które potrafią operować na tak wielkich liczbach, można się dowiedzieć, że 20102011 ≈ 5,3·106642, liczba ta liczy zatem 6643 cyfry i jeśli program wyświetla je wszystkie, szukaną można odnaleźć "ręcznie". Jest to jednak też pierwsza cyfra reszty z dzielenia danej liczby przez 103188, co programy matematyczne zapisują wyrażeniem à la "(2010^2011) mod (10^3188)". Jego wynikiem jest w przybliżeniu 8,4·103187, więc odpowiedź to 8.

Zad. 3. Języki programowania dają możliwość używania stałych i zmiennych o różnych zakresach, a zazwyczaj nie sygnalizują przekroczenia tych zakresów przy operacjach na typach całkowitoliczbowych. Może się więc zdarzyć, że x będzie zmienną typu, którego maksymalna wartość jest mniejsza od a, i wówczas po osiągnięciu tej wartości x zmieni się na wartość minimalną tego typu, więc warunek x<a będzie spełniony zawsze i program nigdy nie wyjdzie z pętli. (Jest tak np. gdy x jest zmienną typu zapisywanego na jednym bajcie, a a przekracza 255).

 

Powrót na górę strony