<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def sample(self, bqm, scalar=None, bias_range=1, quadratic_range=None, ignored_variables=None, ignored_interactions=None, ignore_offset=False, **parameters):
 """ Scale and sample from the provided binary quadratic model. if scalar is not given, problem is scaled based on bias and quadratic ranges. See :meth:`.BinaryQuadraticModel.scale` and :meth:`.BinaryQuadraticModel.normalize` Args: bqm (:obj:`dimod.BinaryQuadraticModel`):
 Binary quadratic model to be sampled from. scalar (number):
 Value by which to scale the energy range of the binary quadratic model. bias_range (number/pair):
 Value/range by which to normalize the all the biases, or if `quadratic_range` is provided, just the linear biases. quadratic_range (number/pair):
 Value/range by which to normalize the quadratic biases. ignored_variables (iterable, optional):
 Biases associated with these variables are not scaled. ignored_interactions (iterable[tuple], optional):
 As an iterable of 2-tuples. Biases associated with these interactions are not scaled. ignore_offset (bool, default=False):
 If True, the offset is not scaled. **parameters: Parameters for the sampling method, specified by the child sampler. Returns: :obj:`dimod.SampleSet` """

        ignored_variables, ignored_interactions = _check_params(
            ignored_variables, ignored_interactions)

        child = self.child
        bqm_copy = _scaled_bqm(bqm, scalar, bias_range, quadratic_range,
                               ignored_variables, ignored_interactions,
                               ignore_offset)
        response = child.sample(bqm_copy, **parameters)

        return _scale_back_response(bqm, response, bqm_copy.info['scalar'],
                                    ignored_variables, ignored_interactions,
                                    ignore_offset)