DiscreteUniformDistribution[{imin,imax}]
表示从 imin 到 imax 整数范围内的离散均匀分布.
DiscreteUniformDistribution[{{imin,imax},{jmin,jmax},…}]
表示 {{imin,imax},{jmin,jmax},…} 整数范围内多元离散均匀分布.
DiscreteUniformDistribution
DiscreteUniformDistribution[{imin,imax}]
表示从 imin 到 imax 整数范围内的离散均匀分布.
DiscreteUniformDistribution[{{imin,imax},{jmin,jmax},…}]
表示 {{imin,imax},{jmin,jmax},…} 整数范围内多元离散均匀分布.
更多信息
- DiscreteUniformDistribution 也称为离散矩形分布.
- 当整数
位于
中,
在离散均匀分布中的概率是常数,否则是零. » - DiscreteUniformDistribution 允许 imin 和 imax 可以是满足 imin<imax 的任何整数.
- DiscreteUniformDistribution 可以用于诸如 Mean、CDF 和 RandomVariate 的函数. »
背景
- DiscreteUniformDistribution[{imin,imax}] 表示一个离散统计分布(有时也称作离散均匀分布),其中一个随机变量选取整数值
中的任意一个是等可能的. 因此,均匀分布是由定义域中的端点 imin 和 imax 完全参数化的,概率密度函数是区间
内的常数. 离散均匀分布是 UniformDistribution 的离散化形式,并且正如后者,离散均匀分布也推广至在某个定义域上等可能的多变量. - 用一个色子掷出某一个值 k 的可能性由 PDF[DiscreteUniformDistribution[{1,6}],k] 精确地建模. 给定一个含有一个正确钥匙和 n 个不正确钥匙的钥匙环,通过在数值 1,…,n 上的一个离散随机变量对逆变换法的修正可用于在找出正确钥匙之前对期待的不正确的不同选择的数目建模. 这个问题与所谓的对最大值的估计问题有关. 比如在二战中非常重要的被称作德国坦克问题的示例,它包括估计为了 DiscreteUniformDistribution[{1,N}] 产生 k 个观察所需的最大值
,其中 k 是满足
的整数. - RandomVariate 可用于从一个离散均匀分布中给出一个或多个机器精度或任意精度(后者通过 WorkingPrecision 选项)伪随机变量. Distributed[x,DiscreteUniformDistribution[{imin,imax}]], 更简洁的写作 xDiscreteUniformDistribution[{imin,imax}],可用于声称一个随机变量 x 是根据一个离散均匀分布的分布. 这样的声称之后可用于如 Probability、 NProbability、 Expectation 和 NExpectation 的函数.
- 概率密度和累积分布函数可能通过 PDF[DiscreteUniformDistribution[{imin,imax}],x] 和 CDF[DiscreteUniformDistribution[{imin,imax}],x]给出. 均值、中位数、方差、原始矩和中心矩可以分别通过 Mean、 Median、 Variance、 Moment 和 CentralMoment 算出. 这些量可以通过 DiscretePlot 图像化.
- DistributionFitTest 可用于检测一个给定的数据集是否与离散均匀分布一致, EstimatedDistribution 可用于估计给定数据的一个离散均匀参数分布,而 FindDistributionParameters 可用于拟合数据至一个离散均匀分布. ProbabilityPlot 可用于生成一个给定数据的 CDF 对一个符号化离散均匀分布的 CDF 的绘图,而 QuantilePlot 可用于生成给定数据的分位数对一个符号化离散均匀分布的分位数的绘图.
- TransformedDistribution 可用于表示一个变换离散均匀分布. 另外,CopulaDistribution 可用于构建包含离散均匀分布的更高维度的分布,而 ProductDistribution 可用于计算涉及离散均匀分布的有独立组分分布的联合分布.
- 离散均匀分布与其他分布的数目有关. 例如,DiscreteUniformDistribution[{a,b}] 是 a 和 b 都是整数的假设下的 UniformDistribution[{a,b}] 的离散化形式. 就 n 个独立离散均匀分布随机变量
的和
的意义而言,DiscreteUniformDistribution 也是与 PoissonDistribution 有关的,其中 nPoissonDistribution 是变形泊松分布. 因为如果 (x1x1+x2)DiscreteUniformDistribution,则当
和 2 时 xiGeometricDistribution,所以离散均匀分布与 GeometricDistribution 有关. DiscreteUniformDistribution 与 BetaBinomialDistribution 有关,而与如 CompoundPoissonDistribution 的分布无关.
范例
打开所有单元 关闭所有单元基本范例 (3)
DiscretePlot[Table[PDF[DiscreteUniformDistribution[{1, b}], k], {b, {10, 15, 20}}]//Evaluate, {k, 25}, ExtentSize -> 1 / 2]PDF[DiscreteUniformDistribution[{a, b}], k]DiscretePlot[Table[CDF[DiscreteUniformDistribution[{1, b}], k], {b, {10, 15, 20}}]//Evaluate, {k, 0, 25}, ExtentSize -> Right]CDF[DiscreteUniformDistribution[{a, b}], k]Mean[DiscreteUniformDistribution[{min, max}]]Variance[DiscreteUniformDistribution[{min, max}]]范围 (14)
Table[DiscretePlot3D[PDF[DiscreteUniformDistribution[{{1, 5}, {1, d}}], {x, y}], {x, 0, 6}, {y, 0, d + 1}, AxesLabel -> Automatic, ExtentSize -> 1 / 2, PlotLabel -> Row[{"d", d}, "="]], {d, {5, 10}}]PDF[DiscreteUniformDistribution[{{a, b}, {c, d}}], {x, y}]Table[DiscretePlot3D[CDF[DiscreteUniformDistribution[{{1, 5}, {1, d}}], {x, y}], {x, 0, 6}, {y, 0, d + 1}, ExtentSize -> Right, AxesLabel -> Automatic, PlotLabel -> Row[{"d", d}, "="]], {d, {5, 10}}]CDF[DiscreteUniformDistribution[{{a, b}, {c, d}}], {x, y}]Covariance[DiscreteUniformDistribution[{{a, b}, {c, d}}]]//MatrixFormdata = RandomVariate[DiscreteUniformDistribution[{20, 40}], 10 ^ 4];Show[Histogram[data, {1}, "PDF"], DiscretePlot[PDF[DiscreteUniformDistribution[{20, 40}], k], {k, 20, 40}, PlotStyle -> PointSize[Medium]]]sample = RandomVariate[DiscreteUniformDistribution[{1, 4}], 10 ^ 3];e𝒟 = EstimatedDistribution[sample, DiscreteUniformDistribution[{min, max}]]Show[Histogram[sample, {1}, "PDF"], DiscretePlot[PDF[e𝒟, x], {x, 1, 5}, PlotStyle -> PointSize[Medium]]]data = RandomVariate[DiscreteUniformDistribution[{{1, 4}, {0, 3}}], 10 ^ 3];EstimatedDistribution[data, DiscreteUniformDistribution[{{a, b}, {c, d}}]]Skewness[DiscreteUniformDistribution[{min, max}]]Skewness[DiscreteUniformDistribution[{{a, b}, {c, d}, {e, f}}]]ListPlot[Table[Kurtosis[DiscreteUniformDistribution[{0, max}]], {max, 1, 20}], Filling -> Axis]Kurtosis[DiscreteUniformDistribution[{min, max}]]无穷大区间的峰度等于 UniformDistribution 的峰度:
Limit[Kurtosis[DiscreteUniformDistribution[{0, max}]], max -> Infinity]Kurtosis[UniformDistribution[{min, max}]]Kurtosis[DiscreteUniformDistribution[{{a, b}, {c, d}, {e, f}}]]FormulaGrid[list_, type_] := Grid[...]FormulaGrid[Table[Moment[DiscreteUniformDistribution[{min, max}], k]//FullSimplify, {k, 5}], M]Moment[DiscreteUniformDistribution[{min, max}], r]FormulaGrid[Table[CentralMoment[DiscreteUniformDistribution[{min, max}], k]//FullSimplify, {k, 5}], CM]CentralMoment[DiscreteUniformDistribution[{min, max}], r]FormulaGrid[Table[FactorialMoment[DiscreteUniformDistribution[{min, max}], k]//FullSimplify, {k, 5}], FM]FactorialMoment[DiscreteUniformDistribution[{min, max}], r]FormulaGrid[Table[Cumulant[DiscreteUniformDistribution[{min, max}], k]//FullSimplify, {k, 5}], C]FormulaGrid[list_, type_] := Grid[...]FormulaGrid[Table[Moment[DiscreteUniformDistribution[{{a, b}, {c, d}}], {2, k}]//Simplify, {k, 1, 3}], M]Moment[DiscreteUniformDistribution[{{a, b}, {c, d}}], {r, k}]FormulaGrid[Table[CentralMoment[DiscreteUniformDistribution[{{a, b}, {c, d}}], {2, k}]//FullSimplify, {k, 1, 3}], CM]CentralMoment[DiscreteUniformDistribution[{{a, b}, {c, d}}], {r, k}]//SimplifyFormulaGrid[Table[FactorialMoment[DiscreteUniformDistribution[{{a, b}, {c, d}}], {2, k}]//Simplify, {k, 1, 3}], FM]FactorialMoment[DiscreteUniformDistribution[{{a, b}, {c, d}}], {r, k}]FormulaGrid[Table[Cumulant[DiscreteUniformDistribution[{{a, b}, {c, d}}], {2, k}]//Simplify, {k, 0, 3}], C]Cumulant[DiscreteUniformDistribution[{{a, b}, {c, d}}], {r, k}]DiscretePlot[Table[HazardFunction[DiscreteUniformDistribution[{0, max}], x], {max, {5, 10, 15}}]//Evaluate, {x, 0, 18}, ExtentSize -> 1 / 2]HazardFunction[DiscreteUniformDistribution[{min, max}], x]DiscretePlot3D[HazardFunction[DiscreteUniformDistribution[{{1, 5}, {1, 5}}], {x, y}], {x, 0, 6}, {y, 0, 6}, AxesLabel -> Automatic, ExtentSize -> 1 / 2]HazardFunction[DiscreteUniformDistribution[{{a, b}, {c, d}}], {x, y}]Median[DiscreteUniformDistribution[{min, max}]]𝒟 = DiscreteUniformDistribution[{0, 10}];
points = Table[CDF[𝒟, x], {x, 0, 10}]//N;DiscretePlot[Quantile[𝒟, p], {p, points}, ExtentSize -> Right, ExtentMarkers -> {"Empty", "Filled"}]Quantile[DiscreteUniformDistribution[{min, max}], q]𝒟 = DiscreteUniformDistribution[{{a, b}, {c, d}, {e, f}}];MarginalDistribution[𝒟, 2]MarginalDistribution[𝒟, {1, 3}]应用 (7)
DiscreteUniformDistribution 的累积分布函数是右连续函数的一个例子:
DiscretePlot[CDF[DiscreteUniformDistribution[{0, 4}], x], {x, 0, 4}, ExtentSize -> Right, ExtentMarkers -> {"Filled", "Empty"}]CDF[DiscreteUniformDistribution[{0, 4}], x]//PiecewiseExpand一台电脑有 4 个磁盘,序列号码分别为 0、1、2、3,在每次启动中都临时选择一个磁盘来存放临时文件. 求所选择的磁盘的分布:
𝒟 = DiscreteUniformDistribution[{0, 3}];DiscretePlot[PDF[𝒟, x], {x, 0, 3}]Probability[x == 1, x𝒟]Probability[x == 1 || x == 3, x𝒟]ListPlot[{RandomVariate[𝒟, 30], {{0, Mean[𝒟]}, {30, Mean[𝒟]}}}, Filling -> Axis, Joined -> {False, True}]一个每个面出现概率相同的六面骰子可以使用一个 DiscreteUniformDistribution 建模:
dice = DiscreteUniformDistribution[{1, 6}];RandomVariate[dice, 10]Probability[x1 + x2 + x3 ≤ 6, {x1dice, x2dice, x3dice}]N[%]Count[RandomVariate[dice, {10 ^ 5, 3}], _ ? (Total[#] ≤ 6&)] / 10 ^ 5N[%]Select[Tuples[Range[6], 3], Total[#] ≤ 6&]Length[%] / 6 ^ 3投掷两枚正反面出现概率相同的骰子. 求这两枚骰子值的差的分布:
𝒟 = TransformedDistribution[Abs[u - v], {uDiscreteUniformDistribution[{1, 6}], vDiscreteUniformDistribution[{1, 6}]}];CDF[𝒟, x]DiscretePlot[CDF[𝒟, x], {x, 0, 6}, ExtentSize -> Right, ExtentMarkers -> {"Filled", "Empty"}]Probability[x ≤ 3, x𝒟]N[%]Mean[𝒟]N[%]diff = RandomVariate[𝒟, 30]ListPlot[diff, Filling -> Axis]在一次双骰子游戏中[MathWorld],投掷两枚骰子:
Craps = ProductDistribution[{DiscreteUniformDistribution[{1, 6}], 2}];crapsProb = Table[PDF[Craps, {d1, d2}], {d1, 6}, {d2, 6}];TableForm[crapsProb, TableHeadings -> {Range[6], Range[6]}]求得到“蛇眼(即两点)”的概率 [MathWorld]:
Probability[D1 + D2 == 2, {D1, D2}Craps]或者“箱车(即十二点)” [MathWorld]:
Probability[D1 + D2 == 12, {D1, D2}Craps]或者八点 [MathWorld]:
Probability[D1 + D2 == 8, {D1, D2}Craps]或者四点 [MathWorld]:
Probability[D1 + D2 == 4, {D1, D2}Craps]Table[Probability[D1 + D2 == k, {D1, D2}Craps], {k, 12}]求在一次投掷中失败或者赢得双骰子游戏的概率,即两个骰子的和为 2、3 或者12:
Probability[D1 + D2 == 2∨D1 + D2 == 3∨D1 + D2 == 12, {D1, D2}Craps]Probability[D1 + D2 == 7∨D1 + D2 == 11, {D1, D2}Craps]假设有一个研发公司,只要至少有一个员工过生日,公司就放假. 假定生日服从独立分布,求最大化员工上班天数的员工人数:
Productivity[n_] = n Sum[Probability[x ≠ t, xDiscreteUniformDistribution[{1, 365}]]^n, {t, 1, 365}]Reduce[Productivity[n - 1] <= Productivity[n] && Productivity[n] >= Productivity[n + 1], n, Integers]Productivity[364]//NRound[% / 364]points𝒟 = TransformedDistribution[d1 + d2 + d3, {d1, d2, d3}ProductDistribution[{DiscreteUniformDistribution[{1, 6}], 3}]];IntegerPartitions[10, {3}, Range[6]]IntegerPartitions[9, {3}, Range[6]]odds = PDF[points𝒟, 9] / PDF[points𝒟, 10]sample = RandomVariate[points𝒟, 10 ^ 7];{# / (1 - #)&[Probability[x == 9(x == 9 || x == 10), xsample]], odds}//N属性和关系 (4)
PDF[DiscreteUniformDistribution[{min, max}], 3 / 2]Correlation[DiscreteUniformDistribution[{{a, b}, {c, d}, {e, f}}]]//MatrixFormTruncatedDistribution[{a, b}, DiscreteUniformDistribution[{min, max}]]DiscreteUniformDistribution 是 UniformDistribution 的离散版本:
PDF[DiscreteUniformDistribution[{min, max}], k]PDF[UniformDistribution[{min, max}], x]可能存在的问题 (2)
当 min 或 max 不是整数时,DiscreteUniformDistribution 是没有定义的:
Mean[DiscreteUniformDistribution[{0, 2.5}]]Mean[DiscreteUniformDistribution[{min, max}]] /. {min -> 3 + I, max -> 2}技术笔记
-
▪
- 离散分布
文本
Wolfram Research (2007),DiscreteUniformDistribution,Wolfram 语言函数,https://reference.wolfram.com/language/ref/DiscreteUniformDistribution.html (更新于 2010 年).
CMS
Wolfram 语言. 2007. "DiscreteUniformDistribution." Wolfram 语言与系统参考资料中心. Wolfram Research. 最新版本 2010. https://reference.wolfram.com/language/ref/DiscreteUniformDistribution.html.
APA
Wolfram 语言. (2007). DiscreteUniformDistribution. Wolfram 语言与系统参考资料中心. 追溯自 https://reference.wolfram.com/language/ref/DiscreteUniformDistribution.html 年
BibTeX
@misc{reference.wolfram_2026_discreteuniformdistribution, author="Wolfram Research", title="{DiscreteUniformDistribution}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/DiscreteUniformDistribution.html}", note=[Accessed: 04-September-2026]}
BibLaTeX
@online{reference.wolfram_2026_discreteuniformdistribution, organization={Wolfram Research}, title={DiscreteUniformDistribution}, year={2010}, url={https://reference.wolfram.com/language/ref/DiscreteUniformDistribution.html}, note=[Accessed: 04-September-2026]}