Tout d'abord, je suppose que par
De plus, l'état fS de f est défini sur une valeur f′S=fS±k , où k est sélectionné uniformément au hasard parmi
{0,1,2,...,⌊n/2⌋−((fS−x)modn)}
tu veux dire
De plus, l'état de est défini sur une valeur , où est sélectionné uniformément au hasard dansfSff′S=fS+kmodnk
{−∣∣⌊n2⌋−((fS−x)modn)∣∣,…,−1,0,1,2,…,∣∣⌊n2⌋−((fS−x)modn)∣∣}
Sinon, il n'est pas tout à fait clair que est toujours valable et comment exactement se comporte.fS∈{0,...,n−1}fS±k
En utilisant cela, le problème se résume à "manquer autant que possible". Observez que plus nous tirons sur le lapin de près, plus le houblon qu'il fait est gros; dans le cas extrême, nous avons . Il en résulte un saut uniforme entre et , ce qui, fondamentalement, randomise à nouveau complètement la position du lapin. D'un autre côté, si nous manquons le plus mal possible - par un décalage de , le lapin ne bouge pas du tout (!) Et la boîte noire nous met à jour sur ce fait. Par conséquent, nous pouvons simplement nous retourner et tirer sur le lapin.fS−x=±1modn−(⌊n/2⌋±1)(⌊n/2⌋±1)fS−xmodn=⌊n/2⌋
Il nous reste à trouver une procédure pour manquer de plus en plus à chaque coup. Je propose une simple "recherche binaire". (Je vais commodément omettre l'arrondi.) Il se déroule approximativement comme suit:
- Réinitialisez et tirez à une position arbitraire jusqu'à ce que vous obteniez de la la réponseCela prend une quantité constante d'étapes dans l'attente.(fS−xmodn)∈{14n,...,34n}.
- Maintenant, nous savons que la position passée du lapin , et qu'il n'a pas bougé de plus de pas dans les deux sens. Cela divise par deux notre espace de recherche dans la prochaine itération, car le lapin doit être à une positionfS14nf′S∈{(fS−14n)modn,...,fS,...,(fS+14n)modn}
- Recurse: tirer à la position . Avec la probabilité , la position le lapin a sauté aux étapes 1 et 2 se situe dans la plage . Dans ce cas, nous avons réduit de moitié l'espace de recherche. Avec la probabilité , le lapin n'a pas sauté dans cette plage, mais puisque nous savons que , nous avons les mêmes hypothèses qu'à l'étape (2) et donc ne rien perdre.fS−n/2modn1/2f′S{fS−18n,...,fS,...,fS+18n}1/2f′S−xmodn=f′S−fS+n/2modn∈{12n−14n,...,12n+14n}
Chaque étape a besoin de temps pour réussir et divise par deux l'espace de recherche, ce qui donne un nombre global de nombre d'étapes attendu.2=O(1)O(logn)