Given three values, how can I change two values to guarantee they are not equal to each other? This is a variation of a previous question, hopefully without the same way to prove a solution cannot be found.
I have 3 values; x, y, and z.
Each value can only be a single digit (0-9).
x and y are always different values
I want to change the values of x and z in such a way that guarantees they will not be the same value.   x cannot be changed to the same value as y.
However the values of x and z must be changed in such a way that given the new set of x,y,z the original values of x and z can be calculated.
Here are example formulae that don't work:
x = x - y % 10
z = z + y % 10

I can show this doesn't work with the following values.
x: 6, y: 1, z: 4

As both x and z become 5 which is against the rules.
Note, it is not required to use any of x, y, or z in the formulae, but they are available.   It is allowable to change values conditionally.
Is it possible to come up with formulae that work?
 A: It is confusing to talk about the values of $x$, $y$, and $z$ when those
values can "change" during an algorithm, so I'll use $x'$, $y'$, and $z'$ to
denote the three values you have after you "change" $x$ and $z$.
The fundamental thing that will make it impossible to design 
the algorithms you want
is that you have more possible input triplets $(x,y,z)$ 
than output triplets $(x',y',z')$.
In your output, you allow only triplets in which $x'$ is different from
$y'$ and $x'$ is different from $z'$.
In your input, you allow triplets in which $x$ is different from $y$
and $x$ is different from $z$.
That is already just as many possibilities as in the output.
But you also allow the input to be triplets in which $x$ is different from $y$
and $x$ is the same as $z$.
So you have more possible input triplets than output triplets.
By the pigeonhole principle, therefore,
no matter what rules you make about allowing the numbers to "change"
in certain ways, in the end there will be at least one case where two
different triplets $(x_1,y_1,z_1)$ and $(x_2,y_2,z_2)$
are mapped to the same triplet $(x',y',z')$.
There is no possible algorithm that can guess which of the two inputs occurred,
knowing only the output, so you cannot always determine the original numbers.
In order for the algorithm to be reversible you must have a range of possible
outputs that is at least as large as your domain of possible inputs.
If you impose restrictions on the output (such as that $x$ and $z$ must be
different) that are not imposed on the input, you must loosen up some
other restrictions in order to make the range of output large enough.
For example, you could allow the new numbers to be in the range $0$ to $10$,
inclusive.
So the answer to your question is a resounding, "No, absolutely not."
A: You have the exact same problem as the last time.
There are $100$ inputs of the form $x,0,z$
They all give us an output of the form $x,0,z$ but with $x\neq z$, so there are only $90$ possible outputs. This means there are going to be two different inputs $x,0,z$ and $x_0,0,z_0$ that give the same input. When we see that input we cannot differentiate between $x,0,z$ and $x_0,0,z_0$.
