.. only:: html .. note:: :class: sphx-glr-download-link-note Click :ref:`here ` to download the full example code .. rst-class:: sphx-glr-example-title .. _sphx_glr_auto_numerical_methods_general_methods_plot_combinatorial_generator.py: Combinatorial generators ======================== In this example we are going to expose the various desing of experiments that allow to generate all the integer collections satisfying a given combinatorial constraint: - The Tuples generator, which allows to generate all the elements of a Cartesian product :math:`E=\{0,\dots,n_0-1\}\times\dots\times\{0,\dots,n_{d-1}-1\}`. The total number of generated points is :math:`N=\prod_{k=0}^{d-1}n_k`. - The K-permutations generator, which allows to generate all the injective functions from :math:`\{0,\dots,k-1\}` into :math:`\{0,\dots,n-1\}` The total number of generated points is :math:`N=\dfrac{n!}{(n-k)!}`. - The Combinations generator, which allows to generate all the subsets of size :math:`k` of :math:`\{0,\dots,n-1\}` The total number of generated points is :math:`N=\dfrac{n!}{k!(n-k)!}`. .. code-block:: default from __future__ import print_function import openturns as ot import openturns.viewer as viewer from matplotlib import pylab as plt import math as m ot.Log.Show(ot.Log.NONE) Tuples ------ .. code-block:: default experiment = ot.Tuples([2, 3, 5]) print(experiment.generate()) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [[0,0,0],[1,0,0],[0,1,0],[1,1,0],[0,2,0],[1,2,0],[0,0,1],[1,0,1],[0,1,1],[1,1,1],[0,2,1],[1,2,1],[0,0,2],[1,0,2],[0,1,2],[1,1,2],[0,2,2],[1,2,2],[0,0,3],[1,0,3],[0,1,3],[1,1,3],[0,2,3],[1,2,3],[0,0,4],[1,0,4],[0,1,4],[1,1,4],[0,2,4],[1,2,4]]#30 K-permutations -------------- .. code-block:: default experiment = ot.KPermutations(3, 4) print(experiment.generate()) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [[0,1,2],[0,2,1],[1,0,2],[1,2,0],[2,0,1],[2,1,0],[0,1,3],[0,3,1],[1,0,3],[1,3,0],[3,0,1],[3,1,0],[0,2,3],[0,3,2],[2,0,3],[2,3,0],[3,0,2],[3,2,0],[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]#24 Combinations ------------ .. code-block:: default experiment = ot.Combinations(4, 6) print(experiment.generate()) .. rst-class:: sphx-glr-script-out Out: .. code-block:: none [[0,1,2,3],[0,1,2,4],[0,1,2,5],[0,1,3,4],[0,1,3,5],[0,1,4,5],[0,2,3,4],[0,2,3,5],[0,2,4,5],[0,3,4,5],[1,2,3,4],[1,2,3,5],[1,2,4,5],[1,3,4,5],[2,3,4,5]]#15 .. rst-class:: sphx-glr-timing **Total running time of the script:** ( 0 minutes 0.001 seconds) .. _sphx_glr_download_auto_numerical_methods_general_methods_plot_combinatorial_generator.py: .. only :: html .. container:: sphx-glr-footer :class: sphx-glr-footer-example .. container:: sphx-glr-download sphx-glr-download-python :download:`Download Python source code: plot_combinatorial_generator.py ` .. container:: sphx-glr-download sphx-glr-download-jupyter :download:`Download Jupyter notebook: plot_combinatorial_generator.ipynb ` .. only:: html .. rst-class:: sphx-glr-signature `Gallery generated by Sphinx-Gallery `_