Telefonski operaterji imajo tako imenovane prometne podatke o telefonskih razgovorih: kdo je koga klical in kdaj. Čeprav pri tem zbiranju še ne gre za prisluškovanje pogovorom, so tudi prometni podatki strogo zasebni podatki, saj se da na njihovi podlagi marsikaj sklepati o klicočih in jih lahko operaterji posredujejo preiskovalnim organom samo na izrecno zahtevo sodišča ob utemeljenem sumu kaznivih dejanj (ko lahko sodišče odredi tudi prisluškovanje imetnikom izbranih telefonskih številk). Pa recimo, da teh moralnih dilem nimamo. Dobili smo zaporedni seznam prometnih podatkov nekega operaterja o vseh telefonskih klicih v nekem časovnem obdobju. Elementi seznama so pari številk, ki sta uspešno vzpostavili telefonsko zvezo, torej takole (zaradi enostavnosti bomo pri tej nalogi predpostavili, da so vse telefonske številke štirimestne, npr. interne številke nekega podjetja):
- 1705 2312
- 1326 1705
- 3789 1230
- 2312 2372
- 0137 1705
In tako dalje. Zaradi enostavnosti v tabeli niso zapisani časi klicev, vendar je seznam urejen po časovnem zaporedju, torej prvi element seznama je prvi klic v opazovanem časovnem obdobju in tako naprej. Zanima nas, ali je neka zaupna informacija, ki jo je imel lastnik telefonske številke a, lahko prek telefonskih pogovorov prišla do osebe, ki je lastnik telefonske številke b? Mogoče se je a najprej pogovarjal z nekim c, potem pa je d poklical c-ja in nazadnje je d poklical b-ja. Informacija od a do b bi lahko prišla tudi po kakšni drugačni poti, npr. tako, da e najprej pokliče a-ja in potem b pokliče e-ja.
V programu najprej zgeneriramo seznam klicev. V njem je torej 100-krat po 2 elementa, ki so se vsi zgenerirali naključno. Torej najverjetneje nobeni 2 številki ne bosta enaki. Zato brez popravljanja seznama skrivnost verjetno nikoli ne bi bila razkrita, pa ni važno s katero številko bi začeli iskati. Zato popravimo seznam tako, da vemo da je bila skrivnost razkrita. Potem pa to ugotovimo še z algoritmom.


