数据的排列组合二
2016-11-18 14:09
288 查看
直接贴代码:
思路 其实也不难,谢谢论坛大牛的提示
首先考虑到: 六位重复性:
这是单纯数字方面
2 + 6 两位随机 6位重复 下面的也一样
6+ 2
1+6 +1
这是针对字母
2 +6
6+2
1 +6 +1
第一步 把: 字母跟数字并在一起 $arr_mer
先写个:数字加字母一起 无重复排序: (只是两位无重复的,要是多位自己可以修改,这个网上也有的,仅参考)
下面是字母的规则:
备注: 如果 还有其他规则 也按照此类方法推理: 如果需要连续多少位数字一起 2+ 六位连续 六位连续+2 1+六位连续 +1
123456
654321
234567
765432
345678
876543
456789
987654
希望能用到的 提供思路帮助 。
$arr = Array(1,2,3,4,5,6,7,8,9); foreach($arr as $v) echo str_repeat($v, 6), PHP_EOL;
$arr = Array(1,2,3,4,5,6,7,8,9); for($i=0; $i<=count($arr)-6; $i++) { $t = array_slice($arr, $i, 6); echo join('', $t), PHP_EOL; echo join('', array_reverse($t)), PHP_EOL; } 123456 654321 234567 765432 345678 876543 456789 987654
思路 其实也不难,谢谢论坛大牛的提示
首先考虑到: 六位重复性:
这是单纯数字方面
2 + 6 两位随机 6位重复 下面的也一样
6+ 2
1+6 +1
这是针对字母
2 +6
6+2
1 +6 +1
$arr_en = Array('a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', '0', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',); $arr_mer = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', '0', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z',); $arr_num = Array(1, 2, 3, 4, 5, 6, 7, 8, 9);
第一步 把: 字母跟数字并在一起 $arr_mer
先写个:数字加字母一起 无重复排序: (只是两位无重复的,要是多位自己可以修改,这个网上也有的,仅参考)
//*********************************** //以下无重复排序 //$arr = array('a','b','c','d'); $arr = $arr_mer; $result = array(); $t = getCombinationToString($arr, 2); //print_r($t); function getCombinationToString($arr, $m) { if ($m ==1) { return $arr; } $result = array(); $tmpArr = $arr; unset($tmpArr[0]); for($i=0;$i<count($arr);$i++) { $s = $arr[$i]; $ret = getCombinationToString(array_values($tmpArr), ($m-1), $result); foreach($ret as $row) { $result[] = $s . $row; } } return $result; } //******************************************************* 然后写个小循环:、 这里只是写了: 6 +2 相应的 还要写: 2+6 1+6+1 相应规则 还有字母 规则 也要写
/*$i= 0; $j = 0; foreach($arr_num as $en) { $i++; foreach ($t as $v) { //echo (str_repeat($en, 6)).$v, PHP_EOL; $j++; $code = $v.(str_repeat($en, 6)).$v; echo $code; $sql = "INSERT INTO table_name (uid, code, up_time, add_time)VALUES(0,'$code','$up_time','$add_time')"; if (!mysql_query($sql, $conn)) { echo "添加数据失败:" . mysql_error(); } else { echo "添加数据成功!",PHP_EOL; } echo "共".$j."个"; } echo "共".$i."个"; }*/
下面是字母的规则:
/*$i= 0; $j = 0; foreach($arr_en as $en) { $i++; foreach ($t as $v) { //echo (str_repeat($en, 6)).$v, PHP_EOL; $j++; $code = (str_repeat($en, 6)).$v; echo $code; $sql = "INSERT INTO table_name (uid, code, up_time, add_time)VALUES(0,'$code','$up_time','$add_time')"; if (!mysql_query($sql, $conn)) { echo "添加数据失败:" . mysql_error(); } else { echo "添加数据成功!",PHP_EOL; } echo "共".$j."个"; } echo "共".$i."个"; }*/
备注: 如果 还有其他规则 也按照此类方法推理: 如果需要连续多少位数字一起 2+ 六位连续 六位连续+2 1+六位连续 +1
123456
654321
234567
765432
345678
876543
456789
987654
希望能用到的 提供思路帮助 。
相关文章推荐
- 【数据结构与算法】关于排列组合
- 对一组数据做无序排列(组合)的简单实现
- 关于一组数据的排列与组合
- 国家、数据、治理:排列组合文字游戏下的思考(附PPT下载)
- 求排列组合数据
- 【数据结构与算法】二叉查找树形态的排列组合
- 国家、数据、治理:排列组合文字游戏下的思考(附PPT下载)
- 排列组合问题的通用算法
- 一个排列、组合的生成算法
- 终于有个高效率的排列组合算法
- 如何排列数据?
- 显示字符串中所有字符的排列组合。
- 排列组合计算公式
- 高效率的排列组合算法
- 排列、组合及算法
- 显示字符串中所有字符的排列组合。
- 排列组合计算公式
- 顺序求出c(n,r)的排列组合
- [原创]DataList横向排列数据如何实现交替行变色!
- 递归枚举排列、组合的C#源码