Zagadki algorytmiczne #3 – połowa sumy tablicy

Otrzymujesz listę liczb całkowitych. Twoim zadaniem jest zwrócenie jednego z jej elementów x, który spełnia warunek 2 * x = suma pozostałych elementów.

Masz zagwarantowane, że element x istnieje

Przykład:

Dla A = [1, 2, 3, 4, 5], wynikiem jest 5, bo 2 * 5 = 1 + 2 + 3 + 4.

  • Wejście: A int[]
    • 3 ≤ |A| ≤ 100, -1000 ≤ A[i] ≤ 1000
  • Wyjście int
    • jeden z elementów tablicy wejściowej

Priorytetem jest napisanie algorytmu zawierającego jak najmniejszą ilość znaków.

Czytaj dalej

Zagadki algorytmiczne #2 – parser wyrażeń liczb rzymskich

romanOtrzymujesz jako tekst poprawne wyrażenie matematyczne, jednak zapisane liczbami rzymskimi.
Twoim wyzwaniem jest zwrócić liczbę całkowitą będą wynikiem wyrażenia w systemie dziesiętnym. Algorytm powinien składać się z jak najmniejszej ilości znaków.

Wyrażenie może zawierać następujące znaki:

  • operatory: '+', '/', '-', '*', '=', '(', ')'
  • cyfry: 'C', 'D', 'I', 'L', 'M', 'V', 'X'

Przykłady:

  • RomanExpression("V+V=") = 10, as 5 + 5 = 10
  • RomanExpression("IX=") = 9, as 9 = 9
  • RomanExpression("(III+VI)*CM=") = 8100, as (3 + 6) * 900 = 8100
  • Dane wejściowe: string
    • Poprawne wyrażenie matematyczne do rozwiązania
  • Dane wyjściowe: integer
    • Wynik wyrażenia.

Czytaj dalej

Zagadki algorytmiczne #1

Lubicie zagadki algorytmiczne? Jeśli tak, to zachęcam do wypróbowania https://codefights.com (jeśli jeszcze nie jest któremuś z Was znana ta platforma). Przypominam również o odbywających się w grudniu X Mistrzostwach Wielkopolski w Programowaniu Zespołowym, do których zapisy zostaną otwarte w tym miesiącu.

Zadanie

Załóżmy, że każda tablica składa się z kilku pierścieni (warstw), które ponumerowane są rozpoczynając od 1 jako zewnętrznej warstwy, 2 jako kolejnej i tak dalej zmierzając do jej środka.

zadanie

Dla wskazanej liczby N zostaje zwrócona tablica o rozmiarze NxN.

Czytaj dalej

Raspberry PI 2 jako ekran infokiosku

____rpikioskZapewne nie jeden z Was widział na stacjach benzynowych ekrany LCD wyświetlające informacje o prognozowanych warunkach pogodowych, czy utrudnieniach w ruchu. W witrynach sklepowych możemy również oglądać prezentacje reklamowe, a na lotniskach planowane przyloty / odloty samolotów. Również w parku niejednej gminy na terenie naszego kraju mamy możliwość zapoznania się z miejscami wartymi do zwiedzenia w okolicy dzięki multimedialnym infokioskom.

Poniżej opiszę przykład konfiguracji Raspberry PI w systemie operacyjnym Raspbian, dzięki której w łatwy sposób będziemy mogli stworzyć nasz multimedialny infokiosk. Jako widok ekranu posłuży nam zewnętrzna strona www uruchamiana w trybie pełnoekranowym. Nic nie będzie stało na przeszkodzie, aby uruchomić w RPI lokalny serwer WWW serwujący widok z danymi.

Czytaj dalej

Komunikacja szeregowa dwóch Arduino przez Raspberry PI

kamduino3_leonardoCelem ćwiczenia jest wykonanie komunikacji dwóch płytek Arduino za pomocą terminala w Raspbianie Raspberry PI. Wykorzystałem do tego Arduino Leonardo do wysyłania sygnałów oraz KAmduino UNO do ich odbierania. Oba urządzenia podłączyłem do Raspberry kablami USB.

Wykorzystywane porty 

  1. Arduino Leonardo, port ttyACM0
  2. KAmduino UNO, port ttyUSB1

Czytaj dalej

Raspberry PI 2 i KAmduino

kamduino2

W poprzednim wpisie dotyczącym polskiego Arduino (za ok. 50 zł.) o nazwie KAmduino sprawdzałem najprostszy z możliwych programów włączający i wyłączający wbudowaną w urządzenie diodę LED. Dziś wykorzystam ten sam program i sprawdzę możliwość wgrania go do urządzenia z poziomu ostatnio kupionego Raspberry PI 2. W RPI2 posiadam już zainstalowany system operacyjny Raspbian.

Czytaj dalej

X Mistrzostwa Wielkopolski w Programowaniu Zespołowym

XMWPZ2_smallW tym roku po raz dziesiąty odbędą się Mistrzostwa Wielkopolski w Programowaniu Zespołowym (MWPZ), których jednym z oficjalnych patronów medialnych jest Notatnik Programisty!
Mistrzostwa Wielkopolski w Programowaniu Zespołowym są największą polską imprezą programistyczną. MWPZ mają charakter otwarty i są bezpłatne!
Termin zawodów zaplanowany jest w dniach 4-5 grudnia 2015 roku w Poznaniu i będzie to świetna okazja do zweryfikowania sił w zespołowym rozwiązywaniu problemów.
Organizatorami wydarzenia są

Czytaj dalej

Algorytmy sortujące – muzycznie i wizualnie

Hipnotyzujące i bardzo ciekawe przedstawienie różnych algorytmów sortowania, które znalazłem na kanale Timo Bingmanna. Autor postanowił połączyć wizualizację przebiegu algorytmu z efektami dźwiękowymi (zresztą bardzo miło wspominanymi np. przez użytkowników Commodore 64).

Przy okazji chciałbym poinformować, że Notatnik Programisty jest jednym z oficjalnych patronów medialnych największej polskiej imprezy programistycznej: X Mistrzostw Wielkopolski w Programowaniu Zespołowym. Więcej szczegółów już niedługo, a już teraz zachęcam do polubienia Notatnika na Facebooku.

 

Czytaj dalej