Я строю сильную логику и рандомизированный кейген с базой «проверка частичного ключа». Мне нужно добавить еще одну случайную функцию, вращая массив, но все образцы, найденные здесь в Stack Overflow, имеют разные потребности как мои.Вращающийся массив с одним фиксированным значением
Я начинаю с массивом:
int[] q = new int[5];
for (int i = 0; i < q.Length; i++)
{
q[i] = i;
}
Теперь у меня есть:
q[0] = 0;
q[1] = 1;
q[2] = 2;
q[3] = 3;
q[4] = 4;
мне нужно по часовой стрелке, но я должен поддерживать значение неизменны, как, например, д [2 ] = 2;
Тогда первый шаг должен привести (путем добавления + 1 по часовой стрелке):
q[0] = 1;
q[1] = 3; //bypassed 2nd value
q[2] = 2;
q[3] = 4;
q[4] = 0; //come back to 0
Второй шаг должен быть (путем добавления снова + 1 по часовой стрелке):
q[0] = 3; //bypassed 2nd value
q[1] = 4;
q[2] = 2;
q[3] = 0; //come back to 0
q[4] = 1;
Если возможно мне нужно также функция отката ... большое спасибо
Спасибо и за помощь: Между тем я создал свое решение:
for (int i = 0; i < q.Length; i++)
{
if (i == fixed_int) { } //donothing
else if ((q[i] + 1) == fixed_int) { q[i] = q[i] + 2; }
else if ((q[i] + 1) == (q.Length + 1)) { q[i] = 0; }
else { q[i] = q[i] + 1; }
}
это не удастся, если значение Fix не имеет еще 2 int forward, но это не мое дело. Не используйте этот код, так как он не работает в определенных ситуациях. Используйте принятый ответ, потому что он качается!
Очень интересный поворот колес, очень спасибо! –