copied from
http://forum.xda-developers.com/showthread.php?t=856735
namespace RandomWeighting
{
class Program
{
static void Main(string[] args)
{
char[] Select = new char[10] {'A','B','C','D','E','F','G','H','I','J'};
int[] Weight = new int[10] {10,30,25,60,20,70,10,80,20,30};
int[] WeightSum = new int[10];
int i,j,k;
Random Rnd = new Random();
WeightSum[0]=Weight[0];
for (i = 1; i < 10; i++)
WeightSum[i] = WeightSum[i - 1] + Weight[i];
for (j = 0; j < 70; j++)
{
k = Rnd.Next(WeightSum[9]);
for (i = 0; k > WeightSum[i]; i++) ;
Console.Write(Select[i]);
}
Console.WriteLine();
}
}
}
The most common thought of choose with probability is make the elements to be as many as their probability is.
And then uniformly choose some one from the new range,that will be the answer.
a1 3 -> p1 = 3 / (3 + 6) = ⅓
a2 6 -> p2 = 6 / (3 + 6) = ⅔
if a1 and a2 are of equality probability then make the position 0 denote a1 and position 1 for a2.
0 1
a
1
a
2
use Random will uniformly choose one of them.
Now things got changed.We enlarge the amount of elements by some number ,say 9
0 1 2 3 4 5 6 7 8 9
|<----------- a
1
--------->|<-------------------------- a
2
----------------------->|
(ATTENTION:
The length of a
1
is 3 now , and the length of a
2
is 6.
It’s the length,not the numbers contained in their ranges.)
(Suppose rand() returns both the low bound and upper bound)
if Random.rand() * 9 returns number less or equals than 3, we will choose a
1
,
else choose a
2
.
a1’s length could be calculated through 9 * p
1
= 3;
a2’s length could be calculated through 9 * p
2
= 6;
But the number 3 is the key for choosing. Considering there’s one more element a
3
. when should a
3
be chosen? If random number greater than 9, a
3
will be chosen.(Also the random number is calculated through Random.rand() * N, where N equals to a
1
+ a
2
+ a
3
.)
So the separators are
N * p
1
, N * p
1
+ N * p
2
More generally. there will be more elements like listed below:
S
1
= N * p
1
S
2
= N * p
1
+ N * p
2
S
3
= N * p
1
+ N * p
2
+ N * p
3
S
4
= N * p
1
+ N * p
2
+ N * p
3
+ N * p
4
…....
S
n
= N * p
1
+ N * p
2
+ N * p
3
+ … + N * p
n
R = Random.rand() * N;
So ,the solution will be described as this:
Start from s1, if some Si is greater than R.then the i th element is chosen.
We also noticed both S
i
and R are composed of N,so N could be discard on calculating.
S
i
= Sigma p
i
Here, we would discover that the S
i
is the accumulative probability of discrete elements.
Maybe this can also be used in the continuous situation.
分享到:
相关推荐
随机选择流从流中统一选择一个随机值 npm install pick-random-stream用法 var random = require ( 'pick-random-stream' )someStream . pipe ( random ( ) ) . on ( 'data' , function ( data ) { console . log ( ...
这种方法不仅克服了定量逻辑的局限性,后者要求所有估值集合上的概率测度是统一概率测度的可数无穷乘积,而且弥补了概率逻辑仅在局部行为的缺点。 事实证明,真度,定量逻辑中的随机真度和概率逻辑中公式的概率的...
通过构造公式所诱导的阶梯函数给出了公式真度的积分表达式,进而利用命题的Borel概率真度在该逻辑系统中引入公式间的相似度及其伪距离,使得在n值[S-MTL]逻辑系统的统一框架下搭建起融随机性和整体性于一体的近似...
二项逻辑回归模型能够弥补样本量小、自变量类型不统一等不足,对因变量数据假设的要求较低,可用来预测具有二分特点的因变量概率值。以新疆现存的地下煤火火点与随机生成的控制点作为建立回归方程的样本,以煤质指标中...
为探讨城市轨道牵引供电网络中潮流分布的不确定性,基于城市轨道交、直流统一的牵引供电算法,提出了一种基于蒙特卡洛模拟的城市轨道牵引供电系统概率潮流计算方法。该方法通过列车运行的时间一位置曲线构建列车位置的...
电气化铁路牵引负荷受众多随机因素的影响,较难用已知的参数估计模型来统一描述其概率模型。直方图是最简单直观且应用最广泛的一种非参数估计方法,但由其得到的概率密度形状极易受箱宽(或箱数)的影响。为得到牵引...
目前光伏输出功率概率建模中,参数分析方法需预先假设参数分布,非参数分析方法中常用的核密度估计的带宽值选取方法不统一,在此情况下提出一种非参数方法——正交级数密度估计,对数据分布不附加任何假设,基于正交...
我们开发了一个统一的模型来描述混合由三个具有已知分布的伯努利分布随机变量确定的随机延迟,数据包丢失和不确定性观测值的不确定性。 基于提出的模型,通过创新分析方法开发了仅依赖于概率的最优线性估计量。 ...
统一边缘转移概率定义 基于剔除的快速精确边缘采样 以沃克为中心的设计和编程模型 不同随机游走算法的常见优化。 该存储库提供了KnightKing图随机游走引擎的参考实现(SOSP '19论文 ,16分钟的会议演讲幻灯片 )。...
随机信号变换和量化介绍通过转换具有均匀分布的随机变量,我们能够为各种概率密度函数(例如指数分布的概率密度函数)生成样本。 在本实验中,我们实现了一个统一量化器,用于脉冲编码调制系统,以数字方式表示采样...
针对这些问题, 提出一种新的高阶条件随机场模型, 将基于全局形状特征的目标检测结果和点对条件随机场模型统一在一个概率模型框架中, 同时完成图像分割、目标检测与识别的任务。利用目标检测器和前背景分割算法获取...
此代码实现了 DT Gillespie 于 1977 年发表在 Journal of Physical Chemistry 上的随机模拟算法(直接方法)。 默认React和分析解决方案对应于单细胞基因表达的简单模型 (Kaern et al., Nat.Rev.Genet., 2005):Pro...
首先对金字塔型非规则热分析模型进行了研究,然后提出了一种预先保存概率表的加速策略;将随机行走算法在CUDA上实现了并行,得出了最大限度使用GPU资源并保证最大加速比的最优配置。实验结果表明,提出的并行随机...
我们表明,扩散和随机积分的联合核的傅立叶变换收敛于与马尔可夫生成器相关的统一图范数。 收敛还意味着联合核的傅立叶变换的平滑性。 随机积分对于有限三角剖分定义很简单,收敛结果提供了一种新的、完全建设性的...
提出结构的失效除了具有随机性还应具有模糊性的观点,阐明了用模糊示性函数的蒙特卡洛方法计算失效概率的基本原理,从而将各种极限状态统一起来,并使计算所得的失效概率更接近于实际。示例表明,本文方法是完全可行的。
关键思想是整合有关车辆的各种相关知识 追踪 通过使用CRF进入统一的概率框架 模型。 在这项工作中,CRF 模型 整合了车辆运动的时空上下文信息以及车辆的外观信息。 一种近似的推理算法,即循环的信念传播,用于从...
到达点的索引 (qx 1) 其中完成 (i) = 1,...,R I 邻居索引 (D x R),其中 D = 8 C 概率矩阵 (D x R x L) 使得 sum(C,1) = 1(默认 C 是统一的 pdf) K 路径的腿数(至少是最短路径的数量,默认 K = 100) V 要生成的...
这份复习资料旨在帮助学习者复习概率论与数理统计的重要概念和方法。它涵盖了广泛的主题,包括概率模型、随机变量、概率分布、假设检验和参数估计等。每个主题都附有详细的解答题过程,帮助您理解解题方法和步骤。
随机数生成器使用正态分布 生成一个包含 1000 个正态... 一种依赖于中心极限定理的易于编程的近似方法如下:生成 12 个统一的 $U(0,1)$ 偏差,将它们全部相加,然后减去 6 – 结果随机变量将具有近似标准正态分配。 事
事实证明,马尔可夫随机漫步(MRW)是理解频谱聚类和嵌入的有效方法。 然而,由于较少的整体结构量度,常规MRW(例如,高斯内核MRW)无法应用于处理从子空间的混合中提取的数据点。 在本文中,我们介绍了一种正则化...