Prokseo B, denove prokseo B, poste prokseo A. Via protokolo ŝajnas suspektinda, sed hazarda elektilo rajtas fari ĝuste tion.

Elekti el la sama listo ĉe ĉiu peto permesas ripetojn. Kun du same verŝajnaj finpunktoj, la sekva sendependa elekto havas ŝancon unu el du koincidi kun la antaŭa. Mallonga sinsekvo kun ripetoj ne pruvas, ke la elektilo ignoris la liston.

Elektu la konduton, kiun vi vere bezonas

PostuloElekta regulo
Ĉiu elekto estas sendependaElektu el la taŭga listo ĉiufoje
Uzu ĉiun finpunkton unufoje antaŭ ol rekomenciMiksu kopion, konsumu ĝin, poste komencu novan trairon
Evitu la tuj antaŭan finpunktonEkskludu tiun finpunkton antaŭ la elekto

Por la lasta politiko, traktu la kazon de unu sola finpunkto eksplice:

candidates = [endpoint for endpoint in eligible if endpoint != previous]
if not candidates:
    raise RuntimeError("No different eligible proxy is available")
selected = random.choice(candidates)

Ĉi tiu fragmento supozas, ke random estas importita kaj la listo de finpunktoj jam validigita. Publika provizo povas komenci per la senpaga proksea listo kiam ĝiaj protokoloj taŭgas por la fina kliento; ĉi tiu elekta regulo ankoraŭ regas ripetojn. Ĉu atendi, reuzi la solan finpunkton aŭ halti estas aplika politiko. Senfina buklo atendanta alian hazardan valoron ne povas solvi liston enhavantan nur unu apartan elekton.

En samtempa dissendilo, elekti kaj registri la antaŭan finpunkton ankaŭ postulas kunordigitan posedon. Alie du laborantoj povas ambaŭ ekskludi la malnovan valoron kaj elekti la saman sekvan valoron.

Fine, ĉi tiu regulo koncernas la identecon de la finpunkto. Du malsamaj finpunktoj povas konduki al unu publika eliro, kaj unu provizanta finpunkto povas konduki al pluraj eliroj. Registru ilin aparte antaŭ ol decidi, ke la rotacio estas difektita.

Rilataj artikoloj