使用m个可能的字符生成字符串列表(n长度)

时间:2016-06-16 13:13:21

标签: php memory xampp

我需要生成一个带有N长度和M个可能字符的字符串列表。目前我正在使用PHP / XAMPP。

我的函数非常适合生成具有62个可能字符(a-z,A-Z,0-9)的字符串,最长可达4个字符。但是,当我想生成更长的字符串时,我的内存不足。

我已经设置了内存限制,但我的内存仍然不足。

ini_set('memory_limit', '-1');

我得到的错误:

Fatal error:  Out of memory (allocated 1858600960) (tried to allocate 36 bytes) in C:\xampp\htdocs\index.php on line 51

我该如何解决这个问题?在生成字符串列表时,我应该切换到另一种语言以获得更高的性能吗?

编辑,我正在使用的代码:

http://pastebin.com/f6pA6Ra0

1 个答案:

答案 0 :(得分:0)

你是否试图获得一个长度为5的随机字符串,其中M为可能的字符?

然后我建议采用M的随机元素5次,而不是制作每一种可能性的数组(这是916' 132' 832种可能性(62 ^ 5)这个字符数组和长度为5!)

这是一个非递归函数,它返回一个随机字符串,您可以在其中定义大小。

<script data-require="jquery" data-semver="3.0.0" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/materialize/0.97.6/js/materialize.min.js"></script>
<script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script>

如果我误解了你的意图并且你真的希望得到所有可能性,我很抱歉;)