1
cxbig 2015-11-12 02:06:15 +08:00
如果你的种子数组已经确定,用一个 str_pad 就行了。
|
7
cxbig 2015-11-12 02:54:04 +08:00
既然要输出结果,只能用遍历了
for 循环 0 ~ 999999 加左 pad 正则或 strpos 找对应字符串做判断,输出没找到的 |
8
jiangle OP @cxbig
<?php for($i=111111;$i<=999999;$i++){ if(strstr($i,"0") == FALSE OR strstr($i,"4") == FALSE){ $arr[] = $i; } } foreach($arr as $a){ $handle=fopen("7.txt","a+"); $a = $a ."\r\n"; fwrite($handle,$a); fclose($handle); } ?> 我这样它还会生成 0 和 4 的... |
9
cxbig 2015-11-12 03:23:19 +08:00
@jiangle
以上例子惨不忍睹,主要的 2 个性能问题: 1. 文件只打开一次就可以了; 2. for 循环直接判断写入文件,不要存数组再遍历,太占内存。 你的 0 和 4 分开的?我还以为组合呢,判断用正则 preg_match('/[04]/', $string) 返回 true 的跳过 |
12
msg7086 2015-11-12 07:23:13 +08:00
如果是问算法的话,这个就是个 8 进制数字生成而已。
生成完了用下标转一下就好。 随便写了个 ruby 版的。 https://gist.github.com/msg7086/4fa5a3d344c1118bc98c # => ["11", "12", "13", "15", "16", "17", "18", "19", "21", "22", "23", "25", "26", "27", "28", "29", "31", "32", "33", "35", "36", "37", "38", "39", "51", "52", "53", "55", "56", "57", "58", "59", "61", "62", "63", "65", "66", "67", "68", "69", "71", "72", "73", "75", "76", "77", "78", "79", "81", "82", "83", "85", "86", "87", "88", "89", "91", "92", "93", "95", "96", "97", "98", "99"] |