Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- ini_set('memory_limit', '256M');
- function binary_to_gray($element)
- {
- $size = count($element);
- $old = $element;
- $new = array();
- array_unshift($element, 0);
- array_pop($element);
- for($i = 0; $i < $size; ++$i)
- {
- $new[$i] = intval($element[$i]) ^ intval($old[$i]);
- }
- return $new;
- }
- function generate_binary($size)
- {
- $values = array();
- for($i = 0; $i < pow(2, $size) / 2; ++$i)
- {
- $values[$i] = str_split(str_pad(decbin($i), $size, '0', STR_PAD_LEFT));
- }
- return $values;
- }
- function generate_gray($size)
- {
- $values = generate_binary($size);
- for($i = 0; $i < pow(2, $size) / 2; ++$i)
- {
- $values[$i] = binary_to_gray($values[$i]);
- }
- return $values;
- }
- function compliment($element)
- {
- for($i = 0; $i < count($element); ++$i)
- {
- $element[$i] = intval(!$element[$i]);
- }
- return $element;
- }
- function add_compliments($gray)
- {
- $values = array();
- foreach($gray as $element)
- {
- $values[] = $element;
- $values[] = compliment($element);
- }
- return $values;
- }
- $values = add_compliments(generate_gray(16));
- foreach($values as $key => $val)
- {
- echo implode('',$val) . "<br />";
- }
Add Comment
Please, Sign In to add comment