Skip to content

Instantly share code, notes, and snippets.

@miholeus
Created December 6, 2010 11:59
Show Gist options
  • Save miholeus/730192 to your computer and use it in GitHub Desktop.
Save miholeus/730192 to your computer and use it in GitHub Desktop.
What is the next number 13211311123113112211 ?
<?php
$sequence[0] = '1';
//$sequence[1] = (count of numbers in $sequence[0]) //11
//$sequence[2] = (count of numbers in $sequence[1]) //21
function populate_sequence_row($sequence, $rowNumber)
{
if($rowNumber == 0) return 1;
$order = array();
$tmp = '';
$output = '';
$str2array = preg_split("//", $sequence[$rowNumber-1], -1, PREG_SPLIT_NO_EMPTY);
foreach($str2array as $value) {
$prev = count($order) - 1;
if(isset($order[$prev]) && $tmp == $value) {
$order[$prev]['count']++;
} else {
$order[] = array('number' => $value, 'count' => 1);
}
$tmp = $value;
}
foreach($order as $key => $value) {
$output .= $value['count'] . $value['number'];
}
return $output;
}
if(!isset($argv[1])) exit("Script use: php sequence.php <number>\n");
$n = $argv[1];
for($i = 1; $i<$n; $i++) {
$sequence[$i] = populate_sequence_row($sequence, $i);
}
var_dump($sequence);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment