Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -in-|-out-
- 0 | A
- 1 | B
- 2 | AA
- 3 | AB
- 4 | BA
- 5 | BB
- 6 | AAA
- 7 | AAB
- 8 | ABA
- 9 | ABB
- 10 | BBB
- and so on...
- for($i = 1; $i < 100; $i++)
- {
- echo createString ($i, "AB")."<br/>";
- }
- function createString ($id, $chars) // THE ISSUE <---
- {
- $length = getLength($id, $chars);
- //echo "LENGTH : ".$length."<br/><br/>";
- $string = "";
- for($i = 0; $i < $length; $i++)
- {
- $a = round(($id - 1)/pow($length, $i)); // THE ISSUE <-----
- $local = local($a, strlen($chars));
- $string = $chars{$local - 1}." : ".$string;
- }
- return $string;
- }
- function local ($num, $max)
- {
- $num += $max;
- while($num > $max)
- {
- $num -= $max;
- }
- return $num;
- }
- /*
- get the length of the output by inputing the "in" and defining the possible characters
- */
- function getLength ($id, $chars)
- {
- $charNUM = 1;
- $LR = -1;
- $HR = 0;
- while(true)
- {
- $LR = $HR;
- $HR = pow(strlen($chars), $charNUM) + $LR;
- $LR += 1;
- //echo $LR." : ".$HR." : ".$charNUM."<br/>";
- if($id >= $LR && $id <= $HR)
- {
- return $charNUM;
- }
- if($id < $LR)
- {
- return false;
- }
- $charNUM ++;
- }
- }
- B :
- A :
- A : B :
- B : A :
- B : B :
- A : A :
- A : B : B :
- A : B : A :
- A : A : B :
- A : A : A :
- A : A : B :
- A : B : A :
- A : B : B :
- A : B : A :
- B : A : B : B :
- B : A : B : A :
- B : A : B : B :
- B : A : B : A :
- B : A : A : B :
- B : A : A : A :
- B : A : A : B :
- B : A : A : A :
- B : A : B : B :
- B : A : B : A :
- B : B : B : B :
- B : B : B : A :
- B : B : A : B :
- B : B : A : A :
- B : B : A : B :
- B : B : A : A :
- B : B : A : B : B :
- B : B : A : B : A :
- B : B : A : B : B :
- B : B : A : A : A :
- B : B : A : A : B :
- B : B : A : A : A :
- B : B : A : A : B :
- B : B : A : A : A :
- B : B : B : B : B :
- B : B : B : B : A :
- B : B : B : B : B :
- function createString ($id, $chars)
- {
- $length = getLength($id, $chars);
- //echo "LENGTH : ".$length."<br/><br/>";
- $string = "";
- for($i = 0; $i < $length; $i++)
- {
- $a = ceil($id/($i+1));
- $local = local($a, strlen($chars));
- $string = $chars{$local - 1}." : ".$string;
- }
- return $string;
- }
- function convert($number, $base)
- {
- $return = array();
- do{
- $return[] = $number % $base;
- $number = floor($number / $base);
- }while($number != 0);
- return $return;
- }
- function createString($i, $base)
- {
- $res = convert($i, strlen($base));
- $str = "";
- foreach($res as $digit)
- {
- $str = $base[$digit] . $str;
- }
- return $str;
- }
- 0 -> A
- 1 -> B
- 2 -> BA
- 3 -> BB
- 4 -> BAA
- 5 -> BAB
- 6 -> BBA
- 7 -> BBB
- 8 -> BAAA
- 9 -> BAAB
- 10-> BABA
- 11-> BABB
- 12-> BBAA
- 13-> BBAB
- 14-> BBBA
- 15-> BBBB
- $string = "AB";
- $characters = str_split($string, 1);
- function mutate ($characters, $count) {
- var_dump($characters);
- if (!$count) return $characters;
- $result = $tmp = mutate($characters, $count -1);
- foreach ($characters as $char) {
- foreach ($tmp as $current) {
- $result[] = $current . $char;
- }
- }
- return $result;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement