这是编程需求的数学问题...... 如果您有这样的数据
,那么计算概率的方法是什么?40000
32423432
3423423
4543535
354545
最低的数字是40000,最大的是32423432 这些数字在某些txt文件中给出,如输入参数,我需要生成一个将采用此格式的xml文件
<number="40000" probability="0.0">
<number="32423432" probability="1.0">
<number="354545" probability="0.4532">
我用输入参数编写程序,我使用TinyXML生成xml文件但是我遇到了公式问题... 所以如果有人停下来谢谢!
答案 0 :(得分:3)
您可以在此处做的最好的事情是计算histogram
。
答案 1 :(得分:2)
如果你想要一个线性缩放(映射),那么这将起作用(使用双精度):
double newsmallno = (number - smallest)/(largest - smallest)
注意,对于354545的数字,这给出了0.0097的值,所以也许你不希望它是线性的,在这种情况下你需要提供更多细节。
答案 2 :(得分:0)
听起来像是在寻找:
double max = 32423432;
double min = 40000;
double val = 354545;
double prob = (val - min) / (max - min)
这不是概率,更像是你在[0 1]到[min,max]之间转换一个数字
答案 3 :(得分:0)
我想你可能正在寻找Cumulative distribution function。维基百科说:
累积分布函数(CDF)描述概率 具有给定概率的实值随机变量X. 分布将在小于或等于x的值处找到。 直觉上,它是概率的“区域到目前为止”的功能 分布。
您必须确定您的数字是正态分布(钟形曲线)还是均匀分布。
如果您正在寻找,那么您可能需要在stats.stackexchange.com上获取统计数据或交叉发布。
答案 4 :(得分:0)
如果您有基础随机分布的模型,您可以利用这些知识推导出模型参数。例如,您可能知道数据应该具有正态分布,但是平均值和标准差是未知的。手头的数据给出了该分布参数的不完美图像。 (注意:示例数据几乎肯定不是正常分布的。)
如果您没有这样的模型,那么您可以做的最好的事情是构建累积分布函数的估计值。直方图可以作为CDF的良好估计。请注意,如果您这样做,您将不会有CDF(40000)= 0和CDF(32423432)= 1。以这种方式考虑:收集更多数据,您可能会得到一个小于40000的样本或一个大于32423432的样本。