0

我想创建一些arrys。首先,我想告诉你它是关于什么的,以便你理解我为什么这样做:

密码学。

我想用字母创建一个数组。

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

好吧,这只是一点点打字,所以现在我想更频繁地打字。在这种情况下,它是 x+1=y 或者换句话说,对于解码 x=y-1

因此,可以说我想通过将位置从 1 更改为 26 来做到这一点 - 我将拥有 26 个数组。

加密和解密本身不是 php 中的问题,也不是我所要求的,因为它是简单的字符串替换。但是我想知道是否可以通过以下方式以动态方式创建类似的东西:

创建字母(1,12)

它为我创建了一个带有 12 个字母键的多维数组?

这是我问题的第二部分:

在数学上是否有更多通过计算交换字符的可能性?

我的意思是,x+5-3=y 和 x+2=y 一样,但是我计算它被我的 26 个数组所覆盖?所以即使我说:x-5+3=y =?x-2=y 和 x+24=y 一样吗?不是吗?请不要打扰告诉我它可能是 +25 或 +23,而且我不会有 24 个阵列 - 早上 8 点,我没有睡觉 - 我只是在问原理 - 我不想让你做我的工作 - 我是只是在寻找一些确认和想法。

4

1 回答 1

1
$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 种可能的组合。

于 2011-05-02T07:05:58.943 回答