docs: def random_stochastic_matrix(n, k=None, sparse=False, format='csr',
                               random_state=None):
      """
      Return a randomly sampled n x n stochastic matrix with k nonzero
      entries for each row.
  
      Parameters
      ----------
      n : scalar(int)
          Number of states.
  
      k : scalar(int), optional(default=None)
          Number of nonzero entries in each row of the matrix. Set to n if
          not specified.
  
      sparse : bool, optional(default=False)
          Whether to generate the matrix in sparse matrix form.
  
      format : str, optional(default='csr')
          Sparse matrix format, str in {'bsr', 'csr', 'csc', 'coo', 'lil',
          'dia', 'dok'}. Relevant only when sparse=True.
  
      random_state : int or np.random.RandomState, optional
          Random seed (integer) or np.random.RandomState instance to set
          the initial state of the random number generator for
          reproducibility. If None, a randomly initialized RandomState is
          used.
  
      Returns
      -------
      P : numpy ndarray or scipy sparse matrix (float, ndim=2)
          Stochastic matrix.
  
      See also
      --------
      random_markov_chain : Return a random MarkovChain instance.
  
      """
      P = _random_stochastic_matrix(m=n, n=n, k=k, sparse=sparse, format=format,
                                    random_state=random_state)
      return P