Guest User

Untitled

a guest
Aug 14th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.16 KB | None | 0 0
  1. <?php
  2.  
  3. ini_set('memory_limit', '256M');
  4.  
  5. function binary_to_gray($element)
  6. {
  7.     $size = count($element);
  8.     $old = $element;
  9.     $new = array();
  10.     array_unshift($element, 0);
  11.     array_pop($element);
  12.    
  13.     for($i = 0; $i < $size; ++$i)
  14.     {
  15.         $new[$i] = intval($element[$i]) ^ intval($old[$i]);
  16.     }
  17.  
  18.     return $new;
  19. }
  20.  
  21. function generate_binary($size)
  22. {
  23.     $values = array();
  24.  
  25.     for($i = 0; $i < pow(2, $size) / 2; ++$i)
  26.     {
  27.         $values[$i] = str_split(str_pad(decbin($i), $size, '0', STR_PAD_LEFT));
  28.     }
  29.    
  30.     return $values;
  31. }
  32.  
  33. function generate_gray($size)
  34. {
  35.     $values = generate_binary($size);
  36.  
  37.     for($i = 0; $i < pow(2, $size) / 2; ++$i)
  38.     {
  39.         $values[$i] = binary_to_gray($values[$i]);
  40.     }
  41.    
  42.     return $values;
  43. }
  44.  
  45. function compliment($element)
  46. {
  47.     for($i = 0; $i < count($element); ++$i)
  48.     {
  49.         $element[$i] = intval(!$element[$i]);
  50.     }
  51.    
  52.     return $element;
  53. }
  54.  
  55. function add_compliments($gray)
  56. {
  57.     $values = array();
  58.     foreach($gray as $element)
  59.     {
  60.         $values[] = $element;
  61.         $values[] = compliment($element);
  62.     }
  63.    
  64.     return $values;
  65. }
  66.  
  67. $values = add_compliments(generate_gray(16));
  68.  
  69. foreach($values as $key => $val)
  70. {
  71.     echo implode('',$val) . "<br />";
  72. }
Add Comment
Please, Sign In to add comment