W tym miejscu postaram się zebrać zbiór użytecznych operacji na bitach. Z biegiem czasu lista będzie aktualizowana. Zachęcam do przesyłania własnych propozycji!
Month: Październik 2015
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.
Zagadki algorytmiczne #2 – parser wyrażeń liczb rzymskich
Otrzymujesz 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
, as5 + 5 = 10
RomanExpression("IX=") = 9
, as9 = 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.
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.
Dla wskazanej liczby N zostaje zwrócona tablica o rozmiarze NxN.
Raspberry PI 2 jako ekran infokiosku
Zapewne 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
Celem ć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
- Arduino Leonardo, port ttyACM0
- KAmduino UNO, port ttyUSB1
Open sourcowy prysznic, który zużywa 90% mniej wody
Natrafiłem dziś (dzięki fundacji Cohabitat) na dosyć ciekawy, rozwojowy ciągle projekt typu open hardware wykorzystujący m.in. Arduino. Showerloop jest systemem znacznie oszczędzającym wodę oraz energię zużywaną podczas kąpania pod prysznicem.
Raspberry PI 2 i KAmduino
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.
X Mistrzostwa Wielkopolski w Programowaniu Zespołowym
W 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ą
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.