




'''simple docstring'''



from __future__ import annotations
def 			SCREAMING_SNAKE_CASE_			(							__A    :			float	,					__A    :			float	,					__A    :			float	,					)			->			tuple:
   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()







'''simple docstring'''



import random
def 			SCREAMING_SNAKE_CASE_			(							__A    :			int	,					__A    :			float	,					__A    :			bool = False  )			->			dict:
   _SCREAMING_SNAKE_CASE	=				{i: [] for i in range(__A  )}

   # if probability is greater or equal than 1, then generate a complete graph
   if probability >= 1:
      return complete_graph(__A  )
   # if probability is lower or equal than 0, then return a graph without edges
   if probability <= 0:
      return graph

   # for each couple of nodes, add an edge from u to v
   # if the number randomly generated is greater than probability probability
   for i in range(__A  ):
      for j in range(i + 1	,					__A  ):
         if random.random() < probability:
            graph[i].append(__A  )
            if not directed:
               # if the graph is undirected, add an edge in from j to i, either
               graph[j].append(__A  )
   return graph
def 			SCREAMING_SNAKE_CASE_			(							__A    :			int  )			->			dict:
   return {
       i: [j for j in range(__A  ) if i != j] for i in range(__A  )
   }


if __name__ == "__main__":
 import doctest

 doctest.testmod()

