class_docstr: Dirichlet Distribution.
  
  The probability density function of the distribution is expressed as
  
  .. math::
      p(x) = \frac{\Gamma(\sum_{i=1}^{K} \alpha_i)}
          {\prod_{i=1}^{K} \Gamma (\alpha_i)}
          \prod_{i=1}^{K} {x_i}^{\alpha_i-1}
  
  Args:
      alpha(:class:`~chainer.Variable` or :ref:`ndarray`): Parameter of
          distribution.
code: def sample_n(self, n):
      obo_alpha = self.alpha.data.reshape(-1, self.event_shape[0])
      xp = chainer.backend.get_array_module(self.alpha)
      if xp is numpy:
          eps = [
              xp.random.dirichlet(one_alpha, size=(n,)).astype(
                  numpy.float32
              )
              for one_alpha in obo_alpha
          ]
      else:
          eps = [
              xp.random.dirichlet(one_alpha, size=(n,)).astype(
                  numpy.float32
              )
              for one_alpha in obo_alpha
          ]
      eps = [xp.expand_dims(eps_, 0) for eps_ in eps]
      eps = xp.swapaxes(xp.vstack(eps), 0, 1)
      eps = eps.reshape((n,) + self.alpha.shape)
      noise = chainer.Variable(eps)
      return noise
  
imports: import numpy
  import chainer
  from chainer import distribution
  from chainer.functions.array import expand_dims
  from chainer.functions.math import digamma
  from chainer.functions.math import exponential
  from chainer.functions.math import lgamma
  from chainer.functions.math import sum
  from chainer.utils import cache
label_desc: Use image node_id 10 for calling the Dirichlet obj's underlying member method code with example usage: obj.sample_n(n) and returns: noise