Interesuje mnie algorytm kwantowy, który pobiera jako dane wejściowe sekwencję n-bitową i który wytwarza jako dane wyjściowe przetasowaną (permutowaną) wersję tej sekwencji n-bitowej.
Np. Jeśli dane wejściowe wynoszą 0,0,1,1 (więc n = 4 w tym przypadku), możliwe odpowiedzi to:
- 0,0,1,1
- 0,1,0,1
- 0,1,1,0
- 1,0,0,1
- 1,0,1,0
- 1,1,0,0
Należy zauważyć, że należy wygenerować tylko jedno wyjście, które jest losowo wybierane spośród wszystkich możliwych prawidłowych wyników.
Jak można to najlepiej wdrożyć w algorytmie kwantowym ?
Rozwiązanie tego problemu zostało już zaproponowane w ramach jednej z odpowiedzi na pytanie: Jak stworzyć algorytm kwantowy, który wytwarza 2 sekwencje n-bitowe o równej liczbie 1-bitów? . Problem w tym rozwiązaniu polega na tym, że wymaga to około pomocy, które szybko stają się ogromne, jeśli n jest duże.
Uwaga:
- Proszę nie dostarczać klasycznego algorytmu bez wyjaśnienia, w jaki sposób kroki klasycznego algorytmu mogą być odwzorowane na uniwersalny komputer kwantowy.
- dla mnie istnieją 2 dobre sposoby interpretacji „losowo wybranych spośród wszystkich możliwych dobrych wyników” : (1) każdy możliwy dobry wynik ma równe szanse na wybranie. (2) każda możliwa dobra wydajność ma szansę wyboru> 0.