Пока ваш массив содержит более 4 букв, смещение их на две вправо (как вы сделали) всегда будет давать результаты, которые не касаются друг друга.Если вам нужна какая-то другая сумма, используйте следующие рекомендации.
Диапазон величины смены должен быть в пределах:
2 <= shift_amount <= (array.length - 2)
Это связано с тем, что «не трогать» строку выше,символ должен находиться на расстоянии не менее 2 пробелов от него в следующей строке:
X X X X X
X X O X X
A X X X A
В этом примере представьте, что буква O уже помещена в эту строку.Теперь нам нужно сгенерировать следующую строку.Буквы А представляют собой ближайшие точки, на которых буква О может находиться на следующей строке, которая находится на расстоянии 2 пробелов.
Если вы хотите наибольшее распределение (т. Е. Числа расположены на наибольшем расстоянии друг от друга), вам следует выбрать число в середине.из этого диапазона (например, 3 для 6, 3 или 4 для 7 и т. д.).
Вот еще несколько примеров, которые меньше касаются равномерного распределения, но больше касаются касания чисел:
4x4 смещено на 2 (успех): 2 <= 2 <= 2
A B C D
C D A B
A B C D
...
5x5 смещено на 3 (успех): 2 <= 3 <= 3
A B C D E
D E A B C
B C D E A
E A B C D
C D E A B
5x5 смещено на 4 (ошибка): 2 <= 4 <!= 3
A B C D E
E A B C D
D E A B C
C D E A B
B C D E A
6x6 смещено на 2 (успех): 2 <= 2 <= 4
A B C D E F
C D E F A B
E F A B C D
...
26x26 смещено на 2 (успех): 2 <= 2 <= 24
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
...