


"""simple docstring"""


from __future__ import annotations

UpperCamelCase						:				int             =      1.6021E-19  # units = C







def  __snake_case       (   UpperCamelCase__ ,			UpperCamelCase__ ,			UpperCamelCase__ ,			)      ->		tuple[str, float]:







		"""simple docstring"""





		if (conductivity, electron_conc, mobility).count(0	) != 1:
				raise ValueError('You cannot supply more or less than 2 values'	)
		elif conductivity < 0:
				raise ValueError('Conductivity cannot be negative'	)
		elif electron_conc < 0:
				raise ValueError('Electron concentration cannot be negative'	)
		elif mobility < 0:
				raise ValueError('mobility cannot be negative'	)
		elif conductivity == 0:
				return (
				    "conductivity",
				    mobility * electron_conc * ELECTRON_CHARGE,
				)
		elif electron_conc == 0:
				return (
				    "electron_conc",
				    conductivity / (mobility * ELECTRON_CHARGE),
				)
		else:
				return (
				    "mobility",
				    conductivity / (electron_conc * ELECTRON_CHARGE),
				)


if __name__ == "__main__":
				import doctest

				doctest.testmod()









"""simple docstring"""


from statistics import mean, stdev







def  __snake_case       (   UpperCamelCase__ ,			UpperCamelCase__ = 3	)      ->		list:







		"""simple docstring"""





		A					       = min(UpperCamelCase__	)
		A					       = max(UpperCamelCase__	)
		# normalize data
		return [round((x - x_min) / (x_max - x_min) ,			UpperCamelCase__	) for x in data]







def  __snake_case       (   UpperCamelCase__ ,			UpperCamelCase__ = 3	)      ->		list:







		"""simple docstring"""





		A					       = mean(UpperCamelCase__	)
		A					       = stdev(UpperCamelCase__	)
		# standardize data
		return [round((x - mu) / (sigma) ,			UpperCamelCase__	) for x in data]





