poniedziałek, 31 grudnia 2007
sobota, 29 grudnia 2007
Funkcja erase( key ) w strukturze multiset
Czy wiesz co wypisze następujący kawałek kodu?
Program wypisze, że zbiór jest pusty.
Dzieje się tak dlatego, iż procedura erase(key) usuwa wszystkie elementy o kluczach key. Dziwne? Wiem, bo w dokumentacji piszą co innego.
Jeśli chcesz usunąć dokładnie jeden element z multiset'a, to powinieneś zrobić to tak:
multiset<int> S;
S.insert(90); // wstaw 90 do zbioru S
S.insert(90); // jeszcze raz
S.erase(90);
if (S.empty()) printf("Zbiór S jest pusty.");
Program wypisze, że zbiór jest pusty.
Dzieje się tak dlatego, iż procedura erase(key) usuwa wszystkie elementy o kluczach key. Dziwne? Wiem, bo w dokumentacji piszą co innego.
Jeśli chcesz usunąć dokładnie jeden element z multiset'a, to powinieneś zrobić to tak:
S.erase( S.find(90) );
piątek, 21 grudnia 2007
Wyjście ze szpitala
Przed chwilą wyszedłem ze szpitala. Z powodu Świąt prawie wszystkich wypisano z oddziału.
Mam się stawić z powrotem 15 stycznia 2008 r. Mam nadzieję, że już tak długo nie będe musiał tam leżeć.
Zaraz po wyjściu odwiedziłem mój Instytut Informatyki. Stwierdziłem, że wesprę Fundację TVN i przeznaczę trochę pieniędzy na szpitale dla dzieci.
Zalogowałem sie na allegro.pl i upolowałem aż trzy misie : www.kupmisia.allegro.pl
Przez ponad tydzień leżenia w szpitalu miałem dostatecznie duzo czasu, aby obmyślić sobie sposób superszybkiego kupowania tych Misiów; aukcje kończą się po kilku sekundach.
Mam swojego Misia MARZYCIELA, o którym marzyłem w będąc w szpitalu. Jestem w pełni szczęścia.
Mam się stawić z powrotem 15 stycznia 2008 r. Mam nadzieję, że już tak długo nie będe musiał tam leżeć.
Zaraz po wyjściu odwiedziłem mój Instytut Informatyki. Stwierdziłem, że wesprę Fundację TVN i przeznaczę trochę pieniędzy na szpitale dla dzieci.
Zalogowałem sie na allegro.pl i upolowałem aż trzy misie : www.kupmisia.allegro.pl
Przez ponad tydzień leżenia w szpitalu miałem dostatecznie duzo czasu, aby obmyślić sobie sposób superszybkiego kupowania tych Misiów; aukcje kończą się po kilku sekundach.
Mam swojego Misia MARZYCIELA, o którym marzyłem w będąc w szpitalu. Jestem w pełni szczęścia.
środa, 12 grudnia 2007
W szpitalu
Jestem w szpitalu.
Publiczny Szpital Kliniczny
Męski oddział laryngologiczny,
ul. Chałubińskiego 2.
Wrocław
Publiczny Szpital Kliniczny
Męski oddział laryngologiczny,
ul. Chałubińskiego 2.
Wrocław
sobota, 1 grudnia 2007
RNO-Wiki przeniesione
Przeniosłem moje RNO-Wiki z adresu www.ii.uni.wroc.pl/~rno/wiki, na adres http://www.rafalnowak.pl/wiki.
czwartek, 29 listopada 2007
środa, 28 listopada 2007
Jak zrobić set'a intów z własnym operatorem mniejszości
Czasem potrzebujemy utworzyć zbiór (set) liczb całkowitych (int'ów), w którym inaczej niż zwykle chcemy porównywać liczby.
Tak się dzieje np. w algorytmie Dijkstry, gdzie najmniejszy element w zbiorze to ten, który ma najmniejszą ogległość do źródła.
Załóżmy więc, że dana jest tablica globalna
Zbiór numerów wierzchołków tworzymy wówczas następująco, kluczowa jest struktura z operatorem wywołania operator():
Tak się dzieje np. w algorytmie Dijkstry, gdzie najmniejszy element w zbiorze to ten, który ma najmniejszą ogległość do źródła.
Załóżmy więc, że dana jest tablica globalna
int dist[1000000]; // odległości od źródła w alg. Dijkstry
Zbiór numerów wierzchołków tworzymy wówczas następująco, kluczowa jest struktura z operatorem wywołania operator():
struct cmp
{
// czy a jest mniejsze od b
bool operator() (const int &a, const int &b)
{
if (dist[a] < dist[b]) return true;
if (dist[a] > dist[b]) return false;
return a<b;
}
};
set<int, cmp> kopiec; // ;-)
wtorek, 13 listopada 2007
Poznań Open 2007
Uniwersytet im. Adama Mickiewicza w Poznaniu (UAM) kolejny raz zaprasza na Mistrzostwa Wielkopolski w Programowaniu Zespołowym, które odbędą się 7-8 grudnia 2007 r. w Poznaniu.
Szczegóły konkursu znajdziesz tutaj:
Poznań Open 2007
Szczegóły konkursu znajdziesz tutaj:
Poznań Open 2007
sobota, 10 listopada 2007
piątek, 2 listopada 2007
Podgórzyn - Obóz naukowy
Od poniedziałku 5 XI do piątku 9 XI, będzie trwał organizowamy m.in. przeze mnie obóz naukowy w Podgórzynie.
Będziemy uzywać sprawdzaczki http://themis.lo14.wroc.pl napisanej przez Wiktora Janasa.
Sekcja zadań realizowanych podczas obozu znajduje się tutaj.
Rankingi z poszczególnych dni, będą udostępnione tutaj.
Będziemy uzywać sprawdzaczki http://themis.lo14.wroc.pl napisanej przez Wiktora Janasa.
Sekcja zadań realizowanych podczas obozu znajduje się tutaj.
Rankingi z poszczególnych dni, będą udostępnione tutaj.
środa, 24 października 2007
Pewne własności iloczynu kolejnych liczb pierwszych
Uwaga, chciałbym wyjaśnić, że nie jest prawdą iż jeśli P jest iloczynem kolejnych liczb pierwszych, to P-1 jest liczbą pierwszą; podobnie jest z P+1.
Oto przykłady na P+1:
2*3*5*7*11*13 + 1 = 59*509
17*11*5*2*3*7*13 + 1 = 19*97*277
Oto przykłady na P-1:
2*3*5*7 - 1 = 11*19
2*3*5*7*11*13*17 - 1 = 61*8369
Oto przykłady na P+1:
2*3*5*7*11*13 + 1 = 59*509
17*11*5*2*3*7*13 + 1 = 19*97*277
Oto przykłady na P-1:
2*3*5*7 - 1 = 11*19
2*3*5*7*11*13*17 - 1 = 61*8369
sobota, 13 października 2007
Jak zrobić aby w priority_queue na początku było minimum
How to make priority_queue (C++, STL) with minimum at the top?
Oto szybki sposób zadeklarowania kolejki priorytetowej (kopca) tak, aby na szczycie znajdowało się minimum, a nie jak to jest domyślnie - maksimum:
Oto szybki sposób zadeklarowania kolejki priorytetowej (kopca) tak, aby na szczycie znajdowało się minimum, a nie jak to jest domyślnie - maksimum:
#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
int main(void)
{
priority_queue<int, vector<int>, greater<int> > Q;
// sprawia, że na szczycie kolejki jest minimum
Q.push(5);
Q.push(7);
cout << Q.top() << endl;
return 0;
}
piątek, 12 października 2007
Kilka problemów w Maple
Drobne problemy z Maple'm:
- Problem z liczbami zespolonymi Complex(a,b): complex-numbers.mw
- if oraz if is(..) - różnice : if-problem.mw
- to raczej nie jest problem: moja funkcja mysqrt - mysqrt.mw
- Problem: jak pozbyć się notacji dużego 'O' w wynikach z funkcji assympt - order-symbol.mw
czwartek, 11 października 2007
java with cups problem
wtorek, 9 października 2007
Przedmioty-Portal na stronie rafalnowak.pl
Od tej pory system dla pracowników i studentów Instytutu Informatyki Uniwersytetu Wrocławskiego znajduje się tutaj:
niedziela, 7 października 2007
Dzisiaj próbowałem zainstalować mojego ulubionego Maple 10 w nowiutkim openSUSE 10.3. Napotkałem problem, gdyż instalator wypisał mi:
Niestety nic nie pomogło. Potem, tutaj znalazłem odpowiedź. Otóż wystarczy przed instalacją wpisać polecenie:
Zawsze, przed uruchomieniem programu należy wykonać polecenie (albo odpowiednio skonfigurować system):
Pierwsze rozwiązanie, jakie znalazłem w Google, to:
16:37:39 amd-wire:Linux/Disk1/InstData/VM > ./LinuxInstaller.bin
Preparing to install...
Extracting the JRE from the installer archive...
Unpacking the JRE...
Extracting the installation resources from the installer archive...
Configuring the installer for this system's environment...
awk: cmd. line:6: warning: escape sequence `\.' treated as plain `.'
Launching installer...
java: xcb_xlib.c:52: xcb_xlib_unlock: Assertion `c->xlib.lock' failed.
Przerwane
cd /usr/lib64/jvm/java-1.6.0.u1-sun-1.6.0.u1/jre/lib/amd64/xawt
sed -i 's/XINERAMA/FAKEEXTN/g' libmawt.so
Niestety nic nie pomogło. Potem, tutaj znalazłem odpowiedź. Otóż wystarczy przed instalacją wpisać polecenie:
export LIBXCB_ALLOW_SLOPPY_LOCK=1i działa. Instalacja Maple przebiegła bez problemu.
Zawsze, przed uruchomieniem programu należy wykonać polecenie (albo odpowiednio skonfigurować system):
export LIBXCB_ALLOW_SLOPPY_LOCK=1
piątek, 7 września 2007
Subskrybuj:
Posty (Atom)