Obliczanie numeru grupy na Wnukówkach
2021-03-17
Witold Paluszyński
1. Wstęp
System wnukówek zakłada jednoczesne pisanie prostego testu na sali
wykładowej z podziałem na grupy. Każdy student wylicza swój numer grupy na
podstawie swojego numeru indeksu PWr (nr albumu), oraz bitowej maski testu,
która jest liczbą binarną udostępnianą przez prowadzącego dla konkretnego
testu.
Sposób obliczenia numeru grupy jest specyficzny, lecz został tak pomyślany,
aby można było wyznaczyć numer grupy w bardzo prosty sposób, w maksymalnym
stopniu unikając pomyłek, nawet w całkowicie ręcznej procedurze.
Ten sposób obliczania numerów grup został wymyślony przez mojego nieżyjącego
już Kolegę i Przyjaciela, Marka Wnuka, znanego i poważanego naukowca i
wykładowcę Wydziału Elektroniki Politechniki Wrocławskiej. Na Jego cześć
nazwałem ten typ testów Wnukówkami.
Numer indeksu jest sześciocyfrową liczbą dziesiętną. Do obliczeń potrzebna
będzie wersja binarna tego numeru.
Maska testu jest zawsze liczbą binarną. Może ona zawierać jedną lub więcej
jedynek.
Numer grupy otrzymujemy zawsze jako liczbę binarną, lecz musimy ją
interpretować po prostu jako liczbę, a więc np. zamienić ją na wersję
dziesiątkową.
2. Aplikacja Android
Najprostszym sposobem obliczania numeru grupy jest użycie aplikacji
androidowej dostępnej tu:
3. Ręczne obliczanie numeru grupy
Sposób obliczenia numeru grupy można wyjaśnić na następujących przykładach.
Załóżmy, że numer indeksu jest 222222. Reprezentacja binarna tej liczby to
110110010000001110. Dla celów obliczania numeru grupy wystarczy posługiwać
się końcówką tej liczby. W praktyce nigdy nie będzie potrzeba więcej niż
ostatnie osiem bitów binarnego numeru indeksu:
Reguła wyznaczania numeru grupy: dopasuj bitową maskę
testu do końcówki numeru indeksu, i wybierz z tego numeru bity wskazane
przez jedynki w masce testu. Kombinacja tych bitów jest binarnym
numerem grupy.
Przykład 1: maska testu wynosi 11
maska testu | 1 | 1 |
numer indeksu | ... | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
wybrane bity | 1 | 0 |
numer grupy wynosi binarne 10 czyli 2
Przykład 2: maska testu wynosi 1010
maska testu | 1 | 0 | 1 | 0 |
numer indeksu | ... | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
wybrane bity | 1 | | 1 | |
numer grupy wynosi binarne 11 czyli 3
Przykład 3: maska testu wynosi 10001
maska testu | 1 | 0 | 0 | 0 | 1 |
numer indeksu | ... | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
wybrane bity | 0 | | 0 |
numer grupy wynosi binarne 00 czyli 0
Przykład 4: maska testu wynosi 10101
maska testu | 1 | 0 | 1 | 0 | 1 |
numer indeksu | ... | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 0 |
wybrane bity | 0 | | 1 | | 0 |
numer grupy wynosi binarne 010 czyli 2
4. Pamiętanie numeru indeksu
Wyznaczanie numeru grupy na podstawie numeru indeksu i bitowej maski testu nie
wymaga żadnych obliczeń arytmetycznych, a jedynie dopasowania i wybierania
bitów. Teoretycznie powinno to być możliwe - i łatwe - przez narysowanie na
kartce tabelki jak w powyższych przykładach, i proste odczytanie numeru grupy.
Jednak trudnością jest konieczność pamiętania binarnego numeru indeksu.
Zadanie to można sobie znacznie ułatwić posługując się pośrednią reprezentacją
heksadecymalną (szesnastkową). Na przykład, wymieniony wcześniej numer indeksu
222222 ma postać szesnastkową 3640E. Ważne jest by pamiętać, że w
reprezentacji szesnastkowej każda cyfra szesnastkowa odpowiada dokładnie
czterem bitom reprezentacji binarnej. Zatem zamiast pamiętać ostatnie osiem
cyfr binarnych (bitów) numeru indeksu, wystarczy zapamiętać ostatnie dwie cyfry
szesnastkowe: 0E. Jak? Trzeba powtarzać sobie przez kilka godzin dziennie:
Jestem 0E. Jestem 0E. Jestem 0E. ...
I co potem można z tym zrobić? Wystarczy poćwiczyć wzorce konwersji
binarno-heksadecymalnej:
0(hex)=0000(bin) 4(hex)=0100(bin) 8(hex)=1000(bin) C(hex)=1100(bin)
1(hex)=0001(bin) 5(hex)=0101(bin) 9(hex)=1001(bin) D(hex)=1101(bin)
2(hex)=0010(bin) 6(hex)=0110(bin) A(hex)=1010(bin) E(hex)=1110(bin)
3(hex)=0011(bin) 7(hex)=0111(bin) B(hex)=1011(bin) F(hex)=1111(bin)
i pamiętaną końcówkę 0E możemy rozpisać z pamięci na potrzebne 0000 1110.