login  Naam:   Wachtwoord: 
Registreer je!
 Forum

automatische reeks | Pagina 2

33 antwoorden

Gesponsorde links
Offline MothZone - 13/04/2005 14:45
Avatar van MothZone PHP ver gevorderde k, thx alvast;-)
Offline Thomas - 13/04/2005 16:15
Avatar van Thomas Moderator Gelukt .

  1. <?php
  2. // naar 26-cijferig stelsel
  3. function to26($chars) {
  4. $number_array = array();
  5.  
  6. $chars = strrev($chars);
  7. for($i=0; $i < strlen($chars); $i++) {
  8. $number_array[$i] = ord(strtolower($chars{$i})) - 97; // a=0, b=1 etc
  9. }
  10. return $number_array;
  11. }
  12.  
  13. // 26 cijferig -> decimaal
  14. function todec($number_array) {
  15. $return = 0;
  16. for($i=0; $i < sizeof($number_array); $i++) {
  17. $return += $number_array[$i] * pow(26, $i);
  18. }
  19. return $return;
  20. }
  21.  
  22. // decimaal -> 26 cijferig
  23. function decto26($number, $length) {
  24. $number_array = array();
  25. for($i = $length-1; $i > -1; $i--) {
  26. $i_aantal = (int) floor($number/pow(26, $i));
  27. $number_array[$i] = $i_aantal;
  28. $number = $number - ($i_aantal * pow(26, $i));
  29. }
  30. ksort($number_array);
  31. return $number_array;
  32. }
  33.  
  34. function printnumberarray($arr) {
  35. $ret = "";
  36. for($i=sizeof($arr)-1; $i > -1; $i--) {
  37. $ret .= chr($arr[$i]+97);
  38. }
  39. return $ret;
  40. }
  41.  
  42. function dumparray($arr) {
  43. echo "<pre>";
  44. print_r($arr);
  45. echo "</pre>";
  46. }
  47.  
  48. $test = "abc";
  49. echo "test: ".$test."<br />";
  50. $test26 = to26($test);
  51. dumparray($test26);
  52.  
  53. $testnr = todec($test26);
  54. echo "decimaal: ".$testnr."<br />";
  55.  
  56. $test26 = decto26($testnr, 3);
  57. echo "terug: ";
  58. dumparray($test26);
  59.  
  60. echo "test: ".printnumberarray($test26)."<br />";
  61.  
  62. echo "start: ".todec(to26("ghi"))."<br />";
  63. echo "eind: ".todec(to26("zzz"))."<br />";
  64.  
  65. $start = todec(to26("ghi"));
  66. $eind = todec(to26("zzz"));
  67.  
  68. echo "<pre>";
  69. for($i=$start; $i <= $eind; $i++) {
  70. echo printnumberarray(decto26($i, 3))."\n";
  71. }
  72. echo "</pre>";
  73. ?>


Het aantal combinaties neemt natuurlijk enorm toe als je een string ter lengte 4 of 5 wilt hebben, uiteraard...
Offline MothZone - 13/04/2005 19:08
Avatar van MothZone PHP ver gevorderde thx 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.171s