Guest User

Untitled

a guest
Jun 30th, 2016
47
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.12 KB | None | 0 0
  1. function permutations($letters,$num)
  2. {
  3. $last = str_repeat($letters[0],$num);
  4. $result = array();
  5. while($last != str_repeat($this->lastchar($letters),$num))
  6. {
  7. $result[] = $last;
  8. $last = $this->char_add($letters,$last,$num-1);
  9. }
  10. $result[] = $last;
  11. return $result;
  12. }
  13.  
  14. function char_add($digits,$string,$char)
  15. {
  16. error_reporting(0);
  17.  
  18. if($string[$char] < $this->lastchar($digits))
  19. {
  20. $string[$char] = $digits[strpos($digits,$string[$char])+1];
  21. return $string;
  22. }
  23. else
  24. {
  25. $string = $this->changeall($string,$digits[0],$char);
  26. return $this->char_add($digits,$string,$char-1);
  27. }
  28. }
  29.  
  30. function lastchar($string)
  31. {
  32. return $string[strlen($string)-1];
  33. }
  34.  
  35. function changeall($string,$char,$start = 0,$end = 0)
  36. {
  37. if($end == 0) $end = strlen($string)-1;
  38. for($i=$start;$i<=$end;$i++){
  39. $string[$i] = $char;
  40. }
  41. return $string;
  42. }
  43.  
  44. print_r($this->permutations('1234',2));
  45.  
  46. Array(
  47. [0] => 11
  48. [1] => 12
  49. [2] => 13
  50. [3] => 14
  51. [4] => 21
  52. [5] => 22
  53. [6] => 23
  54. [7] => 24
  55. [8] => 31
  56. [9] => 32
  57. [10] => 33
  58. [11] => 34
  59. [12] => 41
  60. [13] => 42
  61. [14] => 43
  62. [15] => 44)
Add Comment
Please, Sign In to add comment