code: def _generate_hypercube(samples, dimensions, rng):
      """Returns distinct binary samples of length dimensions"""
      if not has_sklearn():
          raise RuntimeError(
              "Scikit-learn is needed to run \
                             make_classification."
          )
  
      from sklearn.utils.random import sample_without_replacement
  
      if dimensions > 30:
          return np.hstack(
              [
                  np.random.randint(2, size=(samples, dimensions - 30)),
                  _generate_hypercube(samples, 30, rng),
              ]
          )
      random_state = int(rng.randint(dimensions))
      out = sample_without_replacement(
          2**dimensions, samples, random_state=random_state
      ).astype(dtype=">u4", copy=False)
      out = np.unpackbits(out.view(">u1")).reshape((-1, 32))[
          :, -dimensions:
      ]
      return out
  
imports: import cuml.internals
  from cuml.internals.import_utils import has_sklearn
  from cuml.datasets.utils import _create_rs_generator
  from cuml.internals.safe_imports import gpu_only_import
  from cuml.internals.safe_imports import cpu_only_import, gpu_only_import_from, null_decorator
label_desc: Use image node_id 1 for calling a global function with example usage: _generate_hypercube(samples, dimensions, rng) and returns: out, np