






def     _snake_case			(__lowercase):

   # bit count represents no. of bits in the gray code
   if bit_count < 0:
      raise ValueError('The given input must be positive')

   # get the generated string sequence
   UpperCamelCase_									=     gray_code_sequence_string(__lowercase)
   #
   # convert them to integers
   for i in range(len(__lowercase)):
      UpperCamelCase_									=     int(sequence[i]    ,      2)

   return sequence






def     _snake_case			(__lowercase):

   # The approach is a recursive one
   # Base case achieved when either n = 0 or n=1
   if bit_count == 0:
      return ["0"]

   if bit_count == 1:
      return ["0", "1"]

   UpperCamelCase_									=     1 << bit_count  # defines the length of the sequence
   # 1<< n is equivalent to 2^n

   # recursive answer will generate answer for n-1 bits
   UpperCamelCase_									=     gray_code_sequence_string(bit_count - 1)

   UpperCamelCase_									=     []

   # append 0 to first half of the smaller sequence generated
   for i in range(seq_len // 2):
      UpperCamelCase_									=     '0' + smaller_sequence[i]
      sequence.append(__lowercase)

   # append 1 to second half ... start from the end of the list
   for i in reversed(range(seq_len // 2)):
      UpperCamelCase_									=     '1' + smaller_sequence[i]
      sequence.append(__lowercase)

   return sequence


if __name__ == "__main__":
 import doctest

 doctest.testmod()













snake_case__      :	List[Any]       	=      """Tobias Carryer"""

from time import time


class 						_a       :






  """simple docstring"""





  def __init__(     self		,		_UpperCAmelCase		,		_UpperCAmelCase		,		_UpperCAmelCase		,		_UpperCAmelCase=int(time() ) )			-> Tuple:  # noqa: B008
     UpperCamelCase_									=     multiplier
     UpperCamelCase_									=     increment
     UpperCamelCase_									=     modulo
     UpperCamelCase_									=     seed




  def    _UpperCAmelCase     (     self )			-> Any:
     UpperCamelCase_									=     (self.multiplier * self.seed + self.increment) % self.modulo
     return self.seed


if __name__ == "__main__":
 # Show the LCG in action.
 snake_case__      :	List[Any]       	=      LinearCongruentialGenerator(1_6_6_4_5_2_5, 1_0_1_3_9_0_4_2_2_3, 2 << 3_1)
 while True:
  print(lcg.next_number())





