大家好,小柏来为大家解答以上问题。科学计算机怎么生成随机数,按设定概率生成随机数—控制随机数出现几率很多人还不知道,现在让我们一起来看看吧!
解答:
1、 提出问题
2、 现实中,人员的学历一定不是平均分布的。例如,高新技术企业员工的学历如下:
3、 本科:40%
4、 专家:24%
5、 中专:20%
6、 以下:10%
7、 研究生:5%
8、 研究生:1%
9、 如何根据这个比例设置随机度的概率?3354控制随机数的出现概率。
10、 分析问题
11、 我们先来回顾一下随机生成学历的公式:
12、 =CHOOSE(5,‘本科学历’‘专科’‘中专’‘高中以下’‘研究生’‘博士生’)从列表中选择第5项,公式的结果为“研究生”。
13、 =CHOOSE(RANDBETWEEN(1,6),‘本科学历’‘大专’‘中专’‘高中以下’‘研究生’‘博士生’)从列表中随机选择1至6项中的一项。
14、 其中:RANDBETWEEN(1,6)根据均匀分布的机制随机生成1到6的数字。
15、 现在我们需要找到一个方法——来生成从1到6的具有设定概率的随机数,而不是RANDBETWEEN(1,6)。
16、 解决问题
17、 逛完网上的名山大川,遇到一个专家是缘分。如果你教我一条法律,你可以打破这种局面。
18、 =LOOKUP(INT(RAND()*100),{0,40,64,84,94,99},{1,2,3,4,5,6})
19、 这个公式随机生成1到6的数字,概率分别为40%、24%、20%、10%、5%和1%。——出现1的概率是40%,出现2的概率是24%,以此类推。
20、 快看。生成的数字越多,验证结果就越准确。
21、 需要说明一下,这个公式是如何把40%、24%、20%、10%、5%和1%这六个概率赋给1到6的?
22、 让我们回顾一下LOOKUP函数!这是一个几乎被遗忘的功能,仍然可以有如此大的用处。
23、 LOOKUP(lookup_value,lookup_vector,[result_vector])
24、 参数1: lookup _ value是必需的。在第一个向量中找到的值。
25、 参数2: lookup _ vector是必需的。只包含一行或一列或一维数组的区域称为第一向量,必须按升序排列。
26、 参数3: result _ vector是可选的。仅包含一行或一列或一维数组的区域称为第二向量,其大小必须与第一向量相同。
27、 函数:求第一个向量中的值,返回第二个向量中相同位置的值。
28、 如果找不到lookup_value,它将匹配第一个向量中小于lookup_value的最大值。
29、 公式说明:
30、 =LOOKUP(INT(RAND()*100),{0,40,64,84,94,99},{1,2,3,4,5,6})
31、 INT(RAND()*100随机生成1-99的值,其中:
32、 生成0-39的概率为40%,与向量一中的0匹配,输出1;
33、 生成40-63的概率为24%,与向量一中的40匹配,输出2;
34、 生成64-83的概率为20%,与向量一中的64匹配,输出3;
35、 生成84-93的概率为10%,与向量一中的84匹配,输出4;
36、 生成94-98的概率为5%,与向量一中的94匹配,输出5;
37、 生成99的概率为1%,与向量一中的99匹配,输出6。
38、 现在,让我们回到第2步,替换原始公式中的RANDBETWEEN(1,6),形成以下公式:
39、 =choose (lookup (int (rand () * 100),{0,40,64,84,94,99},{1,2,3,4,5,6}),'本科','专科','中专','高中以下'
40、 可以直接复制这个公式,根据需要调整数值。
41、 祝你有愉快的一天!
本文到此讲解完毕了,希望对大家有帮助。