PHP динамическое создание алфавита - PullRequest
0 голосов
/ 02 мая 2011

Я хотел бы создать несколько arrys.Прежде всего я хотел бы рассказать вам, о чем идет речь, чтобы вы поняли, почему я это делаю:

Криптография.

Я хочу создать массив с алфавитом.

типа

$a1 = array("a"=>"b", "b"=>"c",....,"z"=>a");

Хорошо, это всего лишь небольшая часть набора текста, так что теперь я хочу делать это немного чаще.В этом случае это x + 1 = y или, другими словами, для декодирования x = y-1

Итак, допустим, я хотел бы сделать это с изменением позиции с 1 на 26 - у меня было бы 26массивы, чем.

Шифрование и дешифрование само по себе не является проблемой в php и не является тем, о чем я прошу, поскольку это простая замена строки.Но мне было интересно, если есть что-то подобное, что можно создать динамически, сказав:

createAlphabets (1,12)

, и это создает мне многомерный массив с 12 клавишами алфавита?

Это вторая часть моего вопроса:

Есть ли математически более широкие возможности обмена символами с помощью вычислений?

Я имею в виду, x + 5-3 = yто же самое, что x + 2 = y, поэтому, как я рассчитываю, он покрыт моими 26 массивами?так что даже если я скажу: х-5 + 3 = у =?х-2 = у это то же самое, что х + 24 = у?не так ли?Пожалуйста, не говорите мне, что это может быть +25 или +23, и что я не собираюсь иметь 24 массива - это 8 утра, и я не спал - я просто спрашиваю о принципе - я не хочу, чтобы вы делали мою работу - япросто ищу подтверждение и идею.

1 Ответ

1 голос
/ 02 мая 2011
$chars = range('a', 'z');
$shift = 5;
$shifted = array_merge(array_slice($chars, $shift), array_slice($chars, 0, $shift));
$alphabet = array_combine($chars, $shifted);

Поскольку в вашем алфавите 26 символов, вы можете сместить их только на 26 символов, что означает 26 возможных комбинаций.

...