PHP实现给定一列字符,生成指定长度的所有可能组合示例

本文实例讲述了PHP实现给定一列字符,生成指定长度的所有可能组合。分享给大家供大家参考,具体如下:

给定一列字符,生成指定长度的所有可能的组合:

如:a,b,c,d,e 或 0-9

生成长度 1:a, b, c, d, e;  长度2 :aa, ab, ac, ad, ae, ba, bb, bc, bd, be,................ee

<?php
function de($len, $pos = 0) {
  static $bit = [];
  static $source = ['a', 'b', 'c', 'd', 'e'];/*[0, 1, 2, 3, 4, 5, 6, 7, 8, 9];*/
  $pos++;
  for($i = 0; $i < count($source); $i++) {
    $bit[$pos] = $source[$i];
    if ($pos < $len) {
      de($len, $pos);
    } else {
      echo implode('', $bit)."\n";
    }
  }
}

用phpcmd小助手(https://github.com/dclnet/phpcmd)运行代码

以上为长度为1

长度为2的。

更多关于PHP相关内容感兴趣的读者可查看本站专题:《PHP数学运算技巧总结》、《PHP运算与运算符用法总结》、《php字符串(string)用法总结》、《PHP数组(Array)操作技巧大全》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《php正则表达式用法总结》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • 浅谈PHP的排列组合(如输入a,b,c 输出他们的全部组合)

    实例如下: <?php /*分治法--直接选择 比如说a b c 首先将a之后的字符依次与a进行交换 1 b,a,c 2 c,b,a 注意这里少了一个原始数据 a,b,c.需要把原始数据也算如排列中 3 a,b,c 然后把字符移到第二个位置,将第二个位置之后的数分别与第二个位置的数进行交换 1 b,a,c ===> 11 b,c,a 2 c,b,a ===> 21 c,a,b 3 a,b,c ===> 31 a,c,b **/ function zuhe($arr,$begin){

  • 组合算法的PHP解答方法

    题目:组合算法:有一个数组a,有N 个元素,现在要求从中找出含有任意元素的所有组合个数. 解答:先看规律吧: 假设这个数组为array(1,2,3,4,5)那么M=5: 可能出现的组合为: 1个数字的组合个数: 5 2个数字的组合个数: 4+3+2+1 3个数字的组合个数: 3+2+1 4个数字的组合个数: 2+1 5个数字的组合个数: 1 很眼熟吧,就是一个逆序的9*9乘法表.除过第一行有M个组合外,其他的组合按乘法表来处理,2个FOR语句嵌套而已 代码: 复制代码 代码如下: $c = 5;

  • php求数组全排列,元素所有组合的方法总结

    本文实例讲述了php求数组全排列,元素所有组合的方法总结. 分享给大家供大家参考,具体如下: <?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($source) - 1; //$source尾部元素下标 $x = $last; $count = 1; //组合个数统计 echo implode(',', $source), "<br>"; //

  • php求数组全排列,元素所有组合的方法

    本文实例讲述了php求数组全排列,元素所有组合的方法.分享给大家供大家参考,具体如下: <?php $source = array('pll','我','爱','你','嘿'); sort($source); //保证初始数组是有序的 $last = count($source) - 1; //$source尾部元素下标 $x = $last; $count = 1; //组合个数统计 echo implode(',', $source), "<br>"; //输出第

  • php通过排列组合实现1到9数字相加都等于20的方法

    本文实例讲述了php通过排列组合实现1到9数字相加都等于20的方法.分享给大家供大家参考.具体实现方法如下: <?php set_time_limit(0); /* 函数说明:huoqu_zhuhe($eq,$jiashu,$isone=0) 参数说明:$eq---几个数相加的总和: $jiashu-------加数数组:$jiashu=array(1,2,3,4,5,6,7,8,9),可以使用的加数: $isone---是否要每次使用不同的加数,唯一性,1是 0 不,默认1 返回类型:数组,数

  • 使用php计算排列组合的方法

    前些天因为业务需要写了一段计算排列组合的代码,今天整理了一下,以备后用 复制代码 代码如下: <?php/** * 要解决的数学问题    :算出C(a,1) * C(b, 1) * ... * C(n, 1)的组合情况,其中C(n, 1)代表从n个元素里任意取一个元素 * * 要解决的实际问题样例:某年级有m个班级,每个班的人数不同,现在要从每个班里抽选一个人组成一个小组, *                       由该小组来代表该年级参加学校的某次活动,请给出所有可能的组合 *//*

  • PHP实现的简单排列组合算法应用示例

    本文实例讲述了PHP实现的简单排列组合算法应用.分享给大家供大家参考,具体如下: 一.问题: 给你一个40斤的西瓜,给3个人分,有多少种分法? 二.PHP实现代码: <?php $aa = range(1,40); $bb = array(); foreach($aa as $k=>$val){ foreach($aa as $v){ foreach($aa as $vl){ $sum = $val+$v+$vl; if($sum == 40){ $bb[$k][0] = $val; $bb[

  • php生成数组的使用示例 php全组合算法

    复制代码 代码如下: <?php$arr = array(1,2,3,4,5);/*@ res  组装好的每一注的每个元素@ $a 临时数组@ $index 数组索引@ $arr 请求的数组@ $b 最后要的结果 */$a = array();$b = array();$total = 0;format($a,0,$arr);function format($res,$index,$arr){ global $total; global $b; $new_arr = $res; $n_arr =

  • PHP输出多个元素的排列或组合的方法

    实例如下: <?php $arr = array('a','b','c','d'); $result = array(); $t = getCombinationToString($arr, 1); print_r($t); $t = getCombinationToString($arr, 2); $t2 = getunique($t); print_r($t2); $t = getCombinationToString($arr, 3); $t2 = getunique($t); print

  • PHP实现给定一列字符,生成指定长度的所有可能组合示例

    本文实例讲述了PHP实现给定一列字符,生成指定长度的所有可能组合.分享给大家供大家参考,具体如下: 给定一列字符,生成指定长度的所有可能的组合: 如:a,b,c,d,e 或 0-9 生成长度 1:a, b, c, d, e;  长度2 :aa, ab, ac, ad, ae, ba, bb, bc, bd, be,................ee <?php function de($len, $pos = 0) { static $bit = []; static $source = ['

  • python随机生成指定长度密码的方法

    本文实例讲述了python随机生成指定长度密码的方法.分享给大家供大家参考.具体如下: 下面的python代码通过对各种字符进行随机组合生成一个指定长度的随机密码 python中的string对象有几个常用的方法用来输出各种不同的字符: string.ascii_letters 输出ascii码的所有字符 string.digits 输出 '0123456789'. string.punctuation ascii中的标点符号 print string.ascii_letters print s

  • JAVA编程实现随机生成指定长度的密码功能【大小写和数字组合】

    本文实例讲述了JAVA编程实现随机生成指定长度的密码功能.分享给大家供大家参考,具体如下: import java.util.Random; public class PassWordCreate { /** * 获得密码 * @param len 密码长度 * @return */ public String createPassWord(int len){ int random = this.createRandomInt(); return this.createPassWord(rand

  • Python中生成一个指定长度的随机字符串实现示例

    方法一: 定义一个函数,参数为所要生成随机字符串的长度.通过random.randint(a, b)方法得到随机数字,具体函数如下: def generate_random_str(randomlength=16): """ 生成一个指定长度的随机字符串 """ random_str = '' base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789' l

  • python生成指定长度的随机数密码

    复制代码 代码如下: #!/usr/bin/env python# -*- coding:utf-8 -*- #导入random和string模块import random, string def GenPassword(length):    #随机出数字的个数    numOfNum = random.randint(1,length-1)    numOfLetter = length - numOfNum    #选中numOfNum个数字    slcNum = [random.cho

  • PHP生成指定长度随机数最简洁的方法

    刚才在写短信验证码模块,需要用到指定位数的随机数,然后网上一找发现太可怕了这么简单的事情竟然用了好几十行多个循环嵌套--看来没有好脑仁儿真的不适合当程序员. 自写了一行版本: function generate_code($length = 4) { return rand(pow(10,($length-1)), pow(10,$length)-1); } 为了便于理解,同时也为了这篇水文可以凑点字数,这是多行版: function generate_code($length = 4) { $

  • python+pandas生成指定日期和重采样的方法

    python 日期的范围.频率.重采样以及频率转换 pandas有一整套的标准时间序列频率以及用于重采样.频率推断.生成固定频率日期范围的工具. 生成指定日期范围的范围 pandas.date_range()用于生成指定长度的DatatimeIndex: 1)默认情况下,date_range会按着时间间隔为天的方式生成从给定开始到结束时间的时间戳数组: 2)如果只指定开始或结束时间,还需要periods标定时间长度. import pandas as pd pd.date_range('2017

  • Python读取excel指定列生成指定sql脚本的方法

    需求 最近公司干活,收到一个需求,说是让手动将数据库查出来的信息复制粘贴到excel中,在用excel中写好的公式将指定的两列数据用update这样的语句替换掉. 例如: 有个A库,其中有两个A.01和A.02字段,需要将这两个字段替换到下面的sql语句中, update A set A.01 = 'excel第一列的值' where A.02 = 'excel第二列的值' 虽然excel中公式写好了,但是还需要将总计的那行复制粘贴到txt文档中,所以索性太麻烦,果断用Python写了一个自动化

  • 原生JS生成指定位数的验证码

    使用原生JS生成指定位数的验证码,验证码包括字母和数字 ##思路:使用String的fromCharCode方法将给定范围的随机数转为大小写字母,再通过随机数决定数组当前位置为大写字母,小写字母或者是数字,函数传入的参数当做该数组的长度,随机填好数组后,对数组内的元素做分情况处理:当该数组内没有数字时,需要随机修改一个字母为一个随机的数字:当该数组没有字母时,需随机修改一个数字为大写或者小写字母:正常情况下的有字母也有数字不做处理,每个判断语句的最后使用数组的join方法将该数组转换为字符串并r

  • PHP生成指定随机字符串的简单实现方法

    本文实例讲述了PHP生成指定随机字符串的简单实现方法.分享给大家供大家参考.具体分析如下: 这是一个简单的函数,没有对生成的内容作强制设定.所以在生成的字符串长度较少的时候,会出现没有指定类型字符的情况.当然,修改起来也很简单,这里就不做添加了. /** * @param string $type * @param $length * @return string */ function randomString($type="number,upper,lower",$length){

随机推荐