




def      _a				(						SCREAMING_SNAKE_CASE_							:    int					):

					# 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
					__lowerCAmelCase           =	gray_code_sequence_string(SCREAMING_SNAKE_CASE_					)
					#
					# convert them to integers
					for i in range(len(SCREAMING_SNAKE_CASE_					)					):
										__lowerCAmelCase           =	int(sequence[i]				,				2					)

					return sequence







def      _a				(						SCREAMING_SNAKE_CASE_							:    int					):

					# 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"]

					__lowerCAmelCase           =	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
					__lowerCAmelCase           =	gray_code_sequence_string(bit_count - 1					)

					__lowerCAmelCase           =	[]

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

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

					return sequence


if __name__ == "__main__":
							import doctest

							doctest.testmod()










from __future__ import annotations







def      _a				(						SCREAMING_SNAKE_CASE_							:    float				,				SCREAMING_SNAKE_CASE_							:    float				,				SCREAMING_SNAKE_CASE_							:    float				,				):
					if (electron_conc, hole_conc, intrinsic_conc).count(0					) != 1:
										raise ValueError("You cannot supply more or less than 2 values"					)
					elif electron_conc < 0:
										raise ValueError("Electron concentration cannot be negative in a semiconductor"					)
					elif hole_conc < 0:
										raise ValueError("Hole concentration cannot be negative in a semiconductor"					)
					elif intrinsic_conc < 0:
										raise ValueError(
										    "Intrinsic concentration cannot be negative in a semiconductor"					)
					elif electron_conc == 0:
										return (
										    "electron_conc",
										    intrinsic_conc**2 / hole_conc,
										)
					elif hole_conc == 0:
										return (
										    "hole_conc",
										    intrinsic_conc**2 / electron_conc,
										)
					elif intrinsic_conc == 0:
										return (
										    "intrinsic_conc",
										    (electron_conc * hole_conc) ** 0.5,
										)
					else:
										return (-1, -1)


if __name__ == "__main__":
					import doctest

					doctest.testmod()




