您好我需要为我的幻想名单分析大约50,063,860种组合。这是60顺位6。
我正在尝试生成将names数组传递给Math_Combinatorics珍珠库的所有可能组合:
$ n是一个包含60个元素的数组,
$result = $combinatorics->combinations( $n, 6);
致命错误:第126行的/usr/share/php/Math/Combinatorics.php中允许的内存大小为2147483648个字节(试图分配72个字节)
无论如何都要分配更多的内存或者一次输入更少的条目,这样它就不会崩溃了吗?
答案 0 :(得分:1)
您可以增加php.ini
中的memory_limit
。来自php docs:
这设置允许脚本分配的最大内存量(以字节为单位)。这有助于防止编写糟糕的脚本占用服务器上的所有可用内存。请注意,要没有内存限制,请将此指令设置为-1。
您还可以使用ini_set()
函数在脚本中内联设置此值,甚至可以使用php_value
指令在apache虚拟主机配置中设置此值。
话虽如此,你可能有必要重构你的代码,以免所有的排列都需要同时存在于内存中,从而大大减少程序的内存占用。
答案 1 :(得分:1)
您可以使用ini_set('memory_limit', '-1');
跳过此错误。这将覆盖默认方法。
但是请注意,这是不是更好的解决方案。 Check this out as well
可能重复