<selectRandomNumbers/>
<selectRandomNumbers/> is a Math
component that generates document variants by selecting random numbers from a specified range of
values, from a normal, log-normal, or mixture-of-normals distribution, or from one of
the discrete count distributions (hypergeometric, binomial, and Poisson).
The numbers are selected once for each variant and stay the same while the activity is open,
so <selectRandomNumbers/> has no resample action. For values a reader can redraw,
use <sampleRandomNumbers/> instead.
Attributes and Properties
Attributes for <selectRandomNumbers>
Highlighted (2)
integer. Default value: 1. How many random numbers to select.
typekeyword. Distribution from which to sample.
| Value | Description |
|---|---|
uniform (default) | Continuous uniform distribution over [from, to]. |
discreteUniformAdded in 0.7.10 | Discrete uniform distribution over integers in [from, to]. |
gaussian | Normal (Gaussian) distribution with the specified mean and standard deviation. |
logNormalIn development | Log-normal distribution: the exponential of a normal distribution with the specified logMean and logStandardDeviation. |
normalMixtureIn development | Mixture of normal distributions: each value comes from one of the distributions described by means and standardDeviations, chosen with probability in proportion to its entry in weights. |
hypergeometricAdded in 0.7.27 | Number of successes when drawing numDraws items without replacement from a population of numTotal items containing numSuccesses successes. |
binomialAdded in 0.7.27 | Number of successes in numTrials independent trials that each succeed with the given probability. |
poissonAdded in 0.7.27 | Poisson distribution with the specified mean (which defaults to 1). |
Uniform and discrete-uniform parameters (4)
Gaussian and Poisson parameters (3)
meannumber. Mean of the sampling distribution (Gaussian or Poisson). Defaults to 0 for Gaussian and 1 for Poisson.
standardDeviationnumber. Default value: 1. Standard deviation of the sampling distribution (Gaussian).
variancenumber. Default value: 1. Variance of the sampling distribution (Gaussian).
Log-normal parameters (3)
logMeanIn developmentnumber. Default value: 0. Mean of the underlying normal distribution (log-normal).
logStandardDeviationIn developmentnumber. Default value: 1. Standard deviation of the underlying normal distribution (log-normal).
logVarianceIn developmentnumber. Default value: 1. Variance of the underlying normal distribution (log-normal).
Normal mixture parameters (4)
meansIn developmentnumberList. Means of the normal distributions being mixed (normal mixture). How many are listed is how many components the mixture has.
standardDeviationsIn developmentnumberList. Default value: [1]. Standard deviations of the normal distributions being mixed (normal mixture). A single value applies to every component.
variancesIn developmentnumberList. Default value: [1]. Variances of the normal distributions being mixed (normal mixture). A single value applies to every component.
weightsIn developmentnumberList. Default value: [1]. Relative weight of each normal distribution being mixed (normal mixture), which need not add up to 1. A single value applies to every component, weighting them equally.
Hypergeometric and binomial parameters (5)
numDrawsAdded in 0.7.27number. Number of items drawn without replacement to form each sample (hypergeometric).
numSuccessesAdded in 0.7.27number. Number of successes in the population drawn from (hypergeometric).
numTotalAdded in 0.7.27number. Size of the population drawn from (hypergeometric).
numTrialsAdded in 0.7.27number. Default value: 1. Number of independent trials making up each sample (binomial).
probabilityAdded in 0.7.27number. Default value: 0.5. Probability that each trial succeeds (binomial).
Number display (5)
avoidScientificNotationAdded in 0.7.16Whether to render numbers in full decimal form rather than scientific notation.
displayDecimalsNumber of decimal places to display when rendering this number.
displayDigitsNumber of significant digits to display when rendering this number.
displaySmallAsZeroThreshold below which numbers are displayed as zero.
padZerosWhether to pad displayed numbers with trailing zeros to fill the requested digits/decimals.
Other (1)
asListboolean. Default value: true. Whether to render the items separated by commas (true) or with no separator (false).
Common to all components (9)
copyreference. Create an independent copy of another component by reference. Enter a references a $name.
disabledboolean. Default value: false. Whether this component is disabled and cannot be interacted with.
extendreference. Extend another component by reference, inheriting its children and attributes. Enter a reference as $name.
fixedboolean. Default value: false. Whether this component's value is fixed and cannot be modified.
fixLocationboolean. Default value: false. Whether this component's location is fixed (preventing it from being moved while still allowing other modifications).
hideboolean. Default value: false. Whether to hide this component from the rendered output.
isResponseboolean. Default value: false. Whether this component is treated as a response for the purposes of assessment.
nametext. The name used to reference this component from elsewhere in the document.
styleNumberinteger. Default value: 1. The style number used to select this component's visual styling from the available style definitions.
Properties for <selectRandomNumbers name="s">
Highlighted (5)
$s.meannumber. Mean of the sampling distribution.
$s.numToSelectinteger. How many random numbers to select.
$s.standardDeviationnumber. Standard deviation of the sampling distribution.
$s.typetext. Distribution from which to sample.
$s.variancenumber. Variance of the sampling distribution.
Uniform and discrete-uniform parameters (3)
$s.fromnumber. Lower bound of the sampling range.
$s.stepnumber. Step size between sample values (for discrete distributions).
$s.tonumber. Upper bound of the sampling range.
Log-normal parameters (3)
$s.logMeanIn developmentnumber. Mean of the underlying normal distribution (log-normal).
$s.logStandardDeviationIn developmentnumber. Standard deviation of the underlying normal distribution (log-normal).
$s.logVarianceIn developmentnumber. Variance of the underlying normal distribution (log-normal).
Normal mixture parameters (4)
$s.meansIn developmentnumberList. Means of the normal distributions being mixed (normal mixture).
$s.standardDeviationsIn developmentnumberList. Standard deviations of the normal distributions being mixed (normal mixture).
$s.variancesIn developmentnumberList. Variances of the normal distributions being mixed (normal mixture).
$s.weightsIn developmentnumberList. Relative weight of each normal distribution being mixed (normal mixture), as written rather than scaled to add up to 1.
Hypergeometric and binomial parameters (5)
$s.numDrawsAdded in 0.7.27number. Number of items drawn without replacement to form each sample (hypergeometric).
$s.numSuccessesAdded in 0.7.27number. Number of successes in the population drawn from (hypergeometric).
$s.numTotalAdded in 0.7.27number. Size of the population drawn from (hypergeometric).
$s.numTrialsAdded in 0.7.27number. Number of independent trials making up each sample (binomial).
$s.probabilityAdded in 0.7.27number. Probability that each trial succeeds (binomial).
Distribution moments (3)
$s.meannumber. Mean of the sampling distribution.
$s.standardDeviationnumber. Standard deviation of the sampling distribution.
$s.variancenumber. Variance of the sampling distribution.
Common to all components (4)
$s.doenetMLtext. The DoenetML source code that produced this component.
$s.hideboolean. Whether to hide this component from the rendered output.
$s.isResponseboolean. Whether this component is treated as a response for the purposes of assessment.
$s.styleNumberinteger. The style number used to select this component's visual styling from the available style definitions.
Examples
Example: Default <selectRandomNumbers/>
Without any attributes specified, the default selection type is uniform, and the default interval is .
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Example: Assign descriptive names to selections
Three numbers are selected. Selections can be assigned more descriptive names by defining individual components which reference the selected values.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Examples
Attribute Example: numToSelect
The <selectRandomNumbers/> component is used with the numToSelect attribute to select multiple
random values in the default interval . The default type is uniform.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: from, to
The <selectRandomNumbers/> component is used with the from and the to attributes to modify the
default selection interval. The default type is uniform.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: type = “discreteUniform”
The type attribute of the <selectRandomNumbers/> component is specified as discreteUniform.
The discreteUniform selection generates values from an evenly spaced range defined by the
attributes to, from, and step. If left unspecified, the default step is 1.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: exclude
The type attribute of the <selectRandomNumbers/> component is specified
as discreteUniform. Values can be excluded from the specified range used with this type using the exclude attribute.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: step
The type attribute of the <selectRandomNumbers/> component is specified as discreteUniform.
The discreteUniform selection generates values from an evenly spaced range defined by the
attributes to, from, and step. If left unspecified, the default step is 1.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: type = “gaussian”
The type attribute of the <selectRandomNumbers/> component is
specified as gaussian. The gaussian selection generates standard normal
variables (mean 0, variance 1). Alternatively, the mean as well as the variance
or the standardDeviation attributes may be defined.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: gaussian with mean and variance
The type attribute of the <selectRandomNumbers/> component is specified
as gaussian. The gaussian selection generates standard normal variables (mean 0, variance 1). In
this example, the mean and the variance are defined with attributes.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: gaussian with mean and standardDeviation
The type attribute of the <selectRandomNumbers/> component is specified
as gaussian. The gaussian selection generates standard normal variables (mean 0, variance 1). In
this example, the mean and the standardDeviation are defined with attributes.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: type = “logNormal”
The logNormal type raises to the power of a normal variable, so every value
is positive and the distribution is skewed to the right — the usual shape for
quantities such as incomes, particle sizes, or times to finish a task.
Its parameters describe the normal distribution being exponentiated, not the values
themselves, which is why they are named logMean and logStandardDeviation rather
than mean and standardDeviation. Either logStandardDeviation or logVariance
may be given, as with the gaussian type. If unspecified, logMean is 0 and
logStandardDeviation is 1.
Writing for logMean and for logStandardDeviation, the reported
mean is and the reported variance is
. Both grow very fast with , so a
large enough one reports Infinity for moments beyond what a number can hold, and
a value too large to represent comes back as Infinity as well. A value too small
to represent rounds to 0, which is the only way one can fail to be strictly
positive.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: type = “normalMixture”
The normalMixture type draws each value from one of several normal
distributions: a component is chosen at random, and the value comes from that
component alone. It is the usual way to describe a population made of distinct
groups, and the usual way to produce a bimodal set of values, which no single
gaussian can.
The components are described by three lists. means gives each component’s
center, and how many are listed is how many components there are — it is
the one of the three with no default. standardDeviations (or variances, as
with the gaussian type) gives each component’s spread, and weights gives
each component’s share of the values. Weights are relative and need not add up
to 1: weights="1 2" above means a third of the values come from the first
component and two thirds from the second. A list holding a single value applies
to every component, which is how the defaults — a spread of 1, and equal
weights — are written.
The reported mean is the weighted average of the component means. The reported
variance is the weighted average of the component variances plus a second term
for how far the components sit from one another. That second term is zero exactly
when every component carrying weight shares one center — a component whose
weights entry is 0 contributes to neither term — and is positive
otherwise. Writing , and for the proportion,
mean and standard deviation of each component, it is
, where is the
reported mean.
Whether the values come out looking bimodal depends on the components. Two equally weighted components of equal spread separate into two visible humps only once their centers are more than apart.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: type = “hypergeometric”
The hypergeometric type counts the successes obtained when drawing numDraws
items without replacement from a population of numTotal items containing
numSuccesses successes. It is the without-replacement counterpart of the
binomial type.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: type = “binomial”
The binomial type counts the successes in numTrials independent trials that
each succeed with the given probability. If unspecified, numTrials is 1 and
probability is 0.5.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Attribute Example: type = “poisson”
The poisson type is determined entirely by its mean, which also equals its
variance. Unlike the gaussian type, whose mean defaults to 0, the mean of a
poisson distribution defaults to 1, since a Poisson distribution with mean 0
always returns 0.
Select a new page variant from the pulldown menu at the top of the editor to see different variants of the document.
Limits on the discrete distributions
The three discrete distributions — hypergeometric, binomial, and poisson
— draw their values one item, trial, or event at a time, so very large
parameters would take a long time and leave the page unresponsive while they ran.
Parameters that would need more than ten million draws for a single value are
therefore treated as unusable, giving NaN values and statistics along with a
warning explaining what to change. The limit is far above the populations, trial
counts, and rates that arise in practice; it is there so that mistyping an extra
digit reports a problem instead of freezing the activity. An order of magnitude
below that, from a million draws per value, the values are still selected as asked,
but a warning notes that selection may be slow. Note that both figures apply to
each value individually — a large numToSelect still takes proportionally
longer.
hypergeometric also has no defaults to fall back on. If any of numTotal,
numSuccesses, or numDraws is omitted, or they do not describe a population,
every value is NaN, as are the reported mean, variance, and
standardDeviation.