r   e   k   l   a   m   a
r   e   k   l   a   m   a

Na ile losowa jest strona wyboru przeglądarki?

Strona główna Aktualności

Ekran wyboru przeglądarki to nie tylko aplikacja, którą Microsoft oferuje przez Windows Update, ale także strona internetowa. Słowacki serwis DSL.sk zwrócił uwagę, że przeglądarki na tej stronie nie są układane całkowicie losowo. Sprawie przyjrzał się Rob Weir.

Zaobserwowano, że przy przeglądaniu strony pod IE, Internet Explorer ma dużą tendencję do pojawia się na ostatnim miejscu. Z kolei Chrome pojawia się na pierwszych trzech miejscach znacznie częściej niż na czwartym i piątym. Przy oglądaniu tej samej strony pod Firefoksem wyniki były inne. Internet Explorer pojawiał się najczęściej na jednym z pierwszych trzech miejsc a Safari najczęściej na ostatnim. Pojawiły się teorie sugerujące, że preferowanie pewnych miejsc jest zabiegiem zamierzonym. Podejrzewano też nieprawidłowo działający generator liczb pseudolosowych. Okazało się, że prawda jest jeszcze ciekawsza.

Losowanie przeglądarek jest wykonywane w ten sposób, że w pierwotnej liście następuje losowe zamienianie miejsc poszczególnych przeglądarek. Pięć najpopularniejszych przeglądarek jest jednak układane oddzielnie od reszty, przez co zawsze znajdują się przed grupą przeglądarek mniej popularnych. Takie mieszanie w obrębie grupy można wykonać na kilka sposóbów, np. algorytmem Fishera–Yatesa. Można też np. posortować elementy według wygenerowanych losowo indeksów. Microsoft jednak, jak nieraz zdarza mu się to robić, zrezygnował ze sprawdzonego rozwiązania na rzecz własnego pomysłu. Wykorzystał on co prawda sortowanie, jednak stworzył nieprawidłowo działającą funkcję porównującą, która jest wykorzystywana przez metodę sort() obiektu klasy Array. Aby sortowanie działało poprawnie, funkcja porównująca musi działać w sposób spójny. Przykładowo, jeśli zwróci, że a jest większe od b, to w przypadku zamiany argumentów miejscami musi zwrócić, że b jest mniejsze od a. Funkcja, którą zaimplementował Microsoft nie spełnia tych warunków. Dlatego też losowanie nie przebiega prawidłowo i nie zapewnia w miarę równomiernego rozkładu prawdopodobieństw. Nie mamy więc do czynienia z zabiegiem celowym a z błędem programisty, który nie przemyślał ani nie przetestował swojego algorytmu.

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.