Я думаю, что есть связь между каждой перестановкой.
Мы видим, что число увеличивается с перестановкой # с шаблоном.
Эта математика не верна для всех решений, но, возможно, работает для некоторых, надеюсь, для некоторыхуказывая на то, что я имею в виду:
Permutation 3 difference = ((3%7+1)^2) * (roundUp(3/7) = 16
Permutation 10 difference = ((10%7+1)^2) * (roundUp(10/7) = 32
Таким образом, мы бы зациклились на абсолютных значениях:
int perm = 1;
for int64 i = 127; perm < totalPermutations
{
i = i + ((perm%7+1)^2) * (roundUp(perm/7);
perm++;
}
Опять же, математика неверна, но дает представление, я уверен, что это возможнопридумать формулу для этого.Относительно того, превосходит ли он побитовые операции, придется проверить.