Здравствуйте. Вот есть такой код:
int maxShuffle = buffer.Length - 3;
for (int i = 0; i < buffer.Length; ++i)
{
for (int idx = 1; idx <= maxShuffle; ++idx)
{
if (i - idx >= 0)
{
buffer[i] ^= buffer[i - idx];
}
}
}
for (int i = buffer.Length - 1; i >= 0; --i)
{
for (int idx = 1; idx <= maxShuffle; ++idx)
{
if (i + idx < buffer.Length)
{
buffer[i] ^= buffer[i + idx];
}
}
}
На вход подаются данные
31, 1, 18, 17, 18, 17, 3, 30, 26, 25, 15, 2, 20, 2, 24, 2, 28, 3, 27, 1
На выходе получаю такое:
2, 9, 16, 0, 0, 17, 15, 25, 7, 21, 27, 27, 0, 12, 0, 4, 1, 24, 3, 4
Меня интересут как обратить этот код?? Чтобы из нижнего варианта получался исходный. Это вообще возможно??