Skip to main content
`Ctrl`+`K`
scipy.stats.qmc.QMCEngine.

# integers

QMCEngine.integers(l_bounds, *, u_bounds=None, n=1, endpoint=False, workers=1)

  Draw n integers from l_bounds (inclusive) to u_bounds (exclusive), or if endpoint=True, l_bounds (inclusive) to u_bounds (inclusive).

  Parameters:
    l_bounds int or array-like of ints

      Lowest (signed) integers to be drawn (unless `u_bounds=None`, in which case this parameter is 0 and this value is used for u_bounds).

    u_bounds int or array-like of ints, optional

      If provided, one above the largest (signed) integer to be drawn (see above for behavior if `u_bounds=None`). If array-like, must contain integer values.

    n int, optional

      Number of samples to generate in the parameter space. Default is 1.

    endpoint bool, optional

      If true, sample from the interval `[l_bounds, u_bounds]` instead of the default `[l_bounds, u_bounds)`. Defaults is False.

    workers int, optional

      Number of workers to use for parallel processing. If -1 is given all CPU threads are used. Only supported when using `Halton` Default is 1.

  Returns:
    sample array_like (n, d)

      QMC sample.

  Notes

  It is safe to just use the same `[0, 1)` to integer mapping with QMC that you would use with MC. You still get unbiasedness, a strong law of large numbers, an asymptotically infinite variance reduction and a finite sample variance bound.

  To convert a sample from \([0, 1)\) to \([a, b), b>a\), with \(a\) the lower bounds and \(b\) the upper bounds, the following transformation is used:

  \[\text{floor}((b - a) \cdot \text{sample} + a)\]