<?php
/**
* hailstone
*
* Calculates a hailstone sequence.
http://en.wikipedia.org/wiki/Collatz_conjecture
*
* @version 0.3
* @author Contributors at eXorithm
* @link /algorithm/view/hailstone Listing at eXorithm
* @link /algorithm/history/hailstone History at eXorithm
* @license /home/show/license
*
* @param number $number number to start with
* @return array
*/
function hailstone($number=17)
{
$result = array();
while ($number > 1) {
$result[] = $number;
if ($number & 1)
$number = 3 * $number + 1;
else
$number = $number / 2;
}
$result[] = $number;
return $result;
}
?>