<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def random_markov_chain(n, k=None, sparse=False, random_state=None):
 """ 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 -------- array([[ 0.19151945, 0.43058932, 0.37789123], [ 0.43772774, 0.34763084, 0.21464142], [ 0.27259261, 0.5073832 , 0.22002419]]) array([[ 0.19151945, 0.80848055, 0. ], [ 0. , 0.62210877, 0.37789123], [ 0.56227226, 0. , 0.43772774]]) """

    P = random_stochastic_matrix(n, k, sparse, format='csr',
                                 random_state=random_state)
    mc = MarkovChain(P)
    return mc