Even "Deutsch's algorithm" seems too difficult. Maybe I found an algorithm that is more appropriate for people without knowledge.
Less to explain. Easy to understand. Or do you have something better than the following?
Problem: Check whether a function permutes on a given set of values.
Example:
This function does permute: F: {0,9,10,12} -> {10,0,12,9}
This function doesn't permute: F: {0,9,10,12} -> {10,0,12,13}
Classically, we would calculate each of the n elements individually, and compare the result set with the original set: F(0)=10, F(9)=0, F(10)=12, F(12)=9
So n-steps are needed. Both for calculating and for comparing. On a quantum computer, this can be done in one step by putting elements in superposition.
F( 0.5|0> + 0.5|9> + 0.5|10> + 0.5|12> ) =
0.5|F(0)> + 0.5|F(9)> + 0.5|F(10)> + 0.5|F(12)> =
0.5|10> + 0.5|0> + 0.5|12> + 0.5|9>
You can see that the input and output states are the same, except for the swap. However, because of the summation, the order doesn't matter. The state has not changed. So the function only permutes the elements. Input and output state can be compared easily. So we can check with a calculation step whether a function only exchanges its elements, or produces new function values.
This algorithm was validated on an IBM-3Qbit-System.
If the function permutes, the measure should return state |000> with 100% certainty. There are other operations that give outputstate |000> as well. But assuming the permuting function is also injective, the probability of alternative ways goes straight against zero. The probability decreases with the number of elements to compare, and exponentially with the number of measurements you do. So, at the end, 10 measures are enough to compare billion elements. Injective permutation could be the scrambled letters in ciphertext: A->H, B->X, C->D, D->U, E->I, F->K, ...
Another application could be, to prove permutations and properties of the monstergroup (group theory), which has almost 10^54 elements.
More details: Algorithm
And: My YouTube-Channel