生成随机数的函数?随机生成数字的函数
大家好,生成随机数的函数相信很多的网友都不是很明白,包括随机生成数字的函数也是一样,不过没有关系,接下来就来为大家分享关于生成随机数的函数和随机生成数字的函数的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!
求设计一个生成随机数的函数
算法:
(1)集合初始化:S←Φ.其中,S为所求随机序列(数组);
(2)进行随机试验,从0~n中生成随机数y;
(3)若(y-1)¢S且y¢S且(y+1)¢S,则将y加入S,否则,转(2);
(4)继续进行上述过程,直到S中元素个数为k.
注:对随机数的生成,可令X~U[0,n+1],并定义取整函数Y=[X]
由概率论的知识可知,随机变量Y的分布列为P{Y=y}=1/(n+1),y=0,1,2,...,n
而均允分布与取整函数分别借助matlab的rand函数与floor函数得到
Matlab程序(当n=100,k=15时):
clear
n=100;
k=15;
S=[];
i=1;
while i<=k
x=(n+1)*rand(1);
y=floor(x);
f=find((S==y-1)|(S==y)|(S==y+1));
if isempty(f)
S=[S,y];
i=i+1;
end
end
S=sort(S)
一个输出:
S=
0 6 22 24 29 34 39 46 60 68 70 78 85 92 96
对于你的原始问题,将n和k的值改成相应的值即可.例如,n=2^25,k=500.
当然,也可以将以上程序编写为函数m文件以便直接调用.
excel中如何生成指定数量的随机数,
因为随机数函数是一个易失性函数,所以正如题主所说,生成的随机数会在每次打开文件时重新生成。其实,不只是打开文件时,而是工作表中有任何操作,如输入数据后按回车键确定、筛选、排序按F9重新计算等,随机数都会重新生成。
要使随机函数生成的随机数不再发生变化,必须在公式中设置单元格在一定的条件下等于单元格本身,这就必须打开Excel的迭代计算(即Excel的循环引用)。所以要达到题主的目的,需要按如下步骤来做:
在选项的公式选项卡中,把“启用迭代计算”打上对勾后确定,以启用迭代。
假设需要生成的随机数在1~10之间,在B2中输入公式:
=IF($A1="","",IF(COLUMN()-1>$A1,"",IF(B2="",RANDBETWEEN(1,10),B2)))
右拉到若干个单元格(单元格个数大于或等于A1中可能输入的最大数字)
现在因为A1中没有输入内容,第1个IF为真,输入公式的单元格显示为空(注意空是一个空格——英文双引号中输入了一空格)
当在A1中输入数字时,第1个IF条件为假,则执行第2个IF,假设输入的数字是5,在B2~F2(不是题主所说的E2)中,第2个IF为假,执行第3个IF。显然第3个IF为真空,因为原来已赋值一个空格,于是生成一个1~10的随机数字;而在G2以后的单元格中,因为前面的数字个数已与A1相同,列数字-1后大于A1,所第3个IF条件为真,取空值(双引号中没内容——单元格显示为没空格的空)。
再来分析B2单元格,当工作表中有操作时,易失性函数会发生变化,但公式中第3个IF的条件为假——B2单元格已有数字,不是一个空格,所取第3参数,即取B2值——也就是已取得的随机数——不再变化。这个B2是引用单元格本身——这就是Excel中的循环引用——所以输入公式前要进行步骤1的设置——启用迭代计算。C2~F2所有已取得的数字的单元格同样不再发生变化。
要重新生成随机数时,只要删除A1中的内容,使第2行填充了公式的单元格重新初始化——取得一个空格,再在A1中输入新的数字即可。
EXCEL如何产生随机数
1、首先用鼠标左键双击电脑桌面上的excel工作表,启动excel工作表。
2、打开excel表格后,用鼠标单击工作表的任意一个单元格,例如图中方框所示。
3、在单元格中输入公式“=RANDBETWEEN(5,10)”,然后点击键盘上的回车键。
4、可以看到,工作中的目标单元格自动生成了一个5~10的数字。
5、用鼠标向下拖动单元格的填充柄,可以生成更多符合要求的数。
6、用鼠标向右拖动单元格的填充柄,同样可以生成更多符合要求的数。
7、按一下键盘上的F9,可以进行刷新,重新生成符合要求的其它数。
关于本次生成随机数的函数和随机生成数字的函数的问题分享到这里就结束了,如果解决了您的问题,我们非常高兴。