code: def random_markov_chain(n, k=None, sparse=False, random_state=None):
      
      P = random_stochastic_matrix(n, k, sparse, format='csr',
                                   random_state=random_state)
      mc = MarkovChain(P)
      return mc
docs: Return a randomly sampled MarkovChain instance with n states, where
      each state has k states with positive transition probability.
  
      Parameters
      ----------
      n : scalar(int)
          Number of states.
  
      k : scalar(int), optional(default=None)
          Number of states that may be reached from each state with
          positive probability. Set to n if not specified.
  
      sparse : bool, optional(default=False)
          Whether to store the transition probability matrix in sparse
          matrix form.
  
      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
      -------
      mc : MarkovChain
  
      Examples
      --------
      >>> mc = qe.markov.random_markov_chain(3, random_state=1234)
      >>> mc.P
      array([[ 0.19151945,  0.43058932,  0.37789123],
             [ 0.43772774,  0.34763084,  0.21464142],
             [ 0.27259261,  0.5073832 ,  0.22002419]])
      >>> mc = qe.markov.random_markov_chain(3, k=2, random_state=1234)
      >>> mc.P
      array([[ 0.19151945,  0.80848055,  0.        ],
             [ 0.        ,  0.62210877,  0.37789123],
             [ 0.56227226,  0.        ,  0.43772774]])