Przypuszczalnie masz powody, by sądzić, że algorytm do generowania prowadnic nie generuje liczb naprawdę losowych, ale w rzeczywistości cyklicznie z okresem << 2 ^ 128.
np. metoda RFC4122 używana do uzyskania identyfikatorów GUID, która naprawia wartości niektórych bitów.
Dowód jazdy na rowerze będzie zależeć od możliwej wielkości okresu.
W przypadku krótkich okresów podejściem może być tabela skrótów (GUID) -> GUID z wymianą w przypadku kolizji, jeśli identyfikatory GUID nie pasują (zakończ, jeśli tak się dzieje). Zastanów się również nad zrobieniem wymiany tylko w przypadkowym ułamku czasu.
Ostatecznie, jeśli maksymalny okres między kolizjami jest wystarczająco duży (i nie jest znany z góry), każda metoda da jedynie prawdopodobieństwo, że kolizja zostanie znaleziona, gdyby istniała.
Pamiętaj, że jeśli metoda generowania prowadnic jest oparta na zegarze (patrz RFC), może nie być możliwe ustalenie, czy występują kolizje, ponieważ albo (a) nie będziesz w stanie czekać wystarczająco długo, aby zegar się zawinął, lub (b) nie możesz poprosić o wystarczającą liczbę prowadnic w ciągu tyknięcia zegara, aby wymusić kolizję.
Alternatywnie możesz być w stanie pokazać statystyczną zależność między bitami w Guid lub korelację bitów między Guidami. Taki związek może sprawić, że wysoce prawdopodobne jest, że algorytm jest wadliwy, niekoniecznie będąc w stanie znaleźć rzeczywistą kolizję.
Oczywiście, jeśli chcesz tylko udowodnić, że Guids mogą się zderzyć, odpowiedzią jest matematyczny dowód, a nie program.