2011-01-30 5 views

답변

0

확실하지 않은 내용을 원하십니까?

$low = $low2 = range('a', 'z'); 
$upp = $upp2 = range('A', 'Z'); 

$arr = array(); 
foreach ($low as $val) 
{ 
    $arr[] = $val; 
    foreach ($low2 as $lval) 
    { 
    $arr[] = $val.$lval; 
    } 
} 

foreach ($upp as $val) 
{ 
    $arr[] = $val; 
    foreach ($upp2 as $uval) 
    { 
    $arr[] = $val.$uval; 
    } 
} 

foreach ($low as $val) 
{ 
    foreach ($upp as $uval) 
    { 
    $arr[] = $val.$uval; 
    } 
} 

foreach ($upp as $val) 
{ 
    foreach ($low as $lval) 
    { 
    $arr[] = $val.$lval; 
    } 
} 
0

순열 계산은 꽤 힘든 작업입니다. 이것은 모든 대문자와 소문자가 포함 된 집합의 두 문자 순열을 계산하는 경우에 특별히 수행됩니다 (함수를 테스트하지는 않았지만 오류를 수정하는 작업을 수행 할 수 있어야합니다. 적어도 당신을 시작하게하십시오).

function permutations($items) 
{ 
    empty($items)?return array():$perms = array(); 
    for ($i = count($items)-1; $i > 0; --$i) 
    { 
    $perms[] = $items[0].$items[$i]; 
    } 
    return array_merge($perms, permutations(array_slice($items,1))); 
} 
0

$lowercase$uppercase 각각 A-Z 및 A-Z에 대한 ASCII 값을 길게 배열된다.

필요에 따라 수정하십시오.

이 출력 모습이다
<?php 

    $lowercase = array(97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122); 

    $uppercase = array(65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90); 

    $i = 0; 
    for($i; $i < 26; $i++) { 
     echo chr($lowercase[$i]) . ", "; 
     echo chr($uppercase[$i]) . ", "; 
    } 

    $i = 0; 
    for($i; $i < 26; $i++) { 
     echo chr($lowercase[$i]); 
     echo chr($lowercase[$i]); 
     echo ", "; 
     echo chr($uppercase[$i]); 
     echo chr($lowercase[$i]); 
     echo ", "; 
     echo chr($lowercase[$i]); 
     echo chr($uppercase[$i]); 
     echo ", "; 
     echo chr($uppercase[$i]); 
     echo chr($uppercase[$i]); 
     echo ", "; 
    } 

?> 

: 다음 하나의 2 개 문자 폭이 코드가, 요소 1 개 문자 폭 한 줄을 기록

a, A, b, B, c, C, d, D, e, E, f, F, g, G, h, H, i, I, j, J, k, K, l, L, m, M, n, N, o, O, p, P, q, Q, r, R, s, S, t, T, u, U, v, V, w, W, x, X, y, Y, z, Z, aa, Aa, aA, AA, bb, Bb, bB, BB, cc, Cc, cC, CC, dd, Dd, dD, DD, ee, Ee, eE, EE, ff, Ff, fF, FF, gg, Gg, gG, GG, hh, Hh, hH, HH, ii, Ii, iI, II, jj, Jj, jJ, JJ, kk, Kk, kK, KK, ll, Ll, lL, LL, mm, Mm, mM, MM, nn, Nn, nN, NN, oo, Oo, oO, OO, pp, Pp, pP, PP, qq, Qq, qQ, QQ, rr, Rr, rR, RR, ss, Ss, sS, SS, tt, Tt, tT, TT, uu, Uu, uU, UU, vv, Vv, vV, VV, ww, Ww, wW, WW, xx, Xx, xX, XX, yy, Yy, yY, YY, zz, Zz, zZ, ZZ, 
0

각 폭 등

, 문자를 반복하고 0에서 2^너비까지 계산하고 2 진 비트를 기반으로 대문자로 변환하여 모든 순열을 인쇄합니다.

e.g. 
    00 = aa 
    01 = aA 
    10 = Aa 
    11 = AA 

(actually I have iterated bits from lowest to highest rank to get the order to match your example) 

코드 :

$maxwidth = 3; 
for ($width = 1; $width <= $maxwidth; $width++) { 
    for ($letter = ord('a'); $letter <= ord('z'); $letter++) { 
     for ($num = 0; $num < pow(2,$width); $num++) { 
      for ($bit = 0; $bit < $width; $bit++) { 
       print ($num & pow(2, $bit)) ? strtoupper(chr($letter)) : chr($letter); 
      } 
      print ','; 
     } 
    } 
    print "\n"; 
} 

출력 :

A, A, B, B, C, C, D, D, E, E, F, F, G, G , h, H, i, I, j, J, k, K, l, L, m, M, n, N, o, O, p, q, Q, r, R, s, S, t A, a, AA, bb, Bb, bB, BB, cc, cc, cC, c, c, d, FF, gg, Gg, gG, GG, hh, Hh, hH, HH, ii, Ii, iI, II, E, MM, MM, nn, Nn, nN, NN, oo, Oo, OO, OO, pp, rs, ss, ss, ss, tt, tt, tT, tT, uu, uu, uu, uu, vv, vv, vV, VV, ww, Ww, wW, WW, xx, Xx, xX, XX, yy, Yy AAA, AAA, AAA, AAA, AAA, bbb, Bbb, bBb, BBb, bbB, BbB, bBB, BBB, ccc, Ccc, DDD, DdD, dDD, DDD, eee, Eee, eEe, Eee, EeE, EeE, EEE, EEE, fff, Fff, fFf, fcf, fcf, fcf, fcfc, ccc, ccc, ccC, FFFF, FFFF, FFF, FFF, GGG, GGG, GGG, GGG, GGG, HGHG, HHH KKK, KKK, KKK, KKK, lll, Lll, Ile, Ile, Ile, Ile, Ile, III, jjj, jjj, jjj, jjj, jjJ, jjJ, jJJ, JJJ, kkk, Kkk, kKk, MMM, MMM, NNN, NNn, NNn, NNn, nNN, NNN, NNN, NNN, 우우, 우우, 우롱, 우롱, 우롱, 우롱, 우롱, QPQ, QPQ, QQQ, QQQ, QQQ, QQQ, QQQ, QQQ, rrr, Rrr, rRr, RRr, rrR, RrR, rRR, RRR, SSS, SSS, SS, SS, SSS, SSS, SSS, ttt, tTt, TTt, ttT, TtT, tTT, TTT, uuu, Uuu, UUu, UUu, UUU, UUU, UUU, UUU, WWW, WWW, WWW, xxx, Xxx, xXx, XXx, xxX, XxX, xXX, XXX, yyy, YYY, YYY, YYY, YYY, YYY, YYY, ZZZ, ZZZ, ZZZ, ZZZ, ZZZ, zZZ, ZZZ,

0

물론입니다. 알파 문자는 단지 $a++으로 증가 될 수 있습니다. 단일 또는 이중 길이 세트가 필요한 경우 단순화를 위해 다음을 수행 할 수 있습니다.

$single_set = array(); // array holding single-character sequence 
$double_set = array(); // array holding double-character sequence 

for ($v1 = 'a', $v2 = 'A'; $v1 !== 'aa'; $v1++, $v2++) { 
    $single_set[] = $v1; 
    $single_set[] = $v2; 
    $double_set[] = $v1 . $v1; 
    $double_set[] = $v1 . $v2; 
    $double_set[] = $v2 . $v1; 
    $double_set[] = $v2 . $v2; 
    } 

$set = $single_set + $double_set; // combined array sequence 
관련 문제