matlab如何产生不重复的随机数啊?比如我想实现产生8个1-----100的随机数,而且不要重复,我自己另外写了一个函数,但是感觉写得不好,有没有现成可用的函数啊?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/01 09:34:25
matlab如何产生不重复的随机数啊?比如我想实现产生8个1-----100的随机数,而且不要重复,我自己另外写了一个函数,但是感觉写得不好,有没有现成可用的函数啊?

matlab如何产生不重复的随机数啊?比如我想实现产生8个1-----100的随机数,而且不要重复,我自己另外写了一个函数,但是感觉写得不好,有没有现成可用的函数啊?
matlab如何产生不重复的随机数啊?
比如我想实现产生8个1-----100的随机数,而且不要重复,我自己另外写了一个函数,但是感觉写得不好,有没有现成可用的函数啊?

matlab如何产生不重复的随机数啊?比如我想实现产生8个1-----100的随机数,而且不要重复,我自己另外写了一个函数,但是感觉写得不好,有没有现成可用的函数啊?
猜测楼主想要的是随机生成不重复的整数吧?如果是浮点数,直接用rand就行,重复的概率极低.
 
楼上的两个回答,一个生成的是浮点数,另一个不能保证抽样的均匀性(从结果可以看到,数据集中在10-30之间).
 
生成不重复整数的问题其实是一个不放回随机抽样的问题,可以使用下面的这个函数:
function s = sampling(R, n)
% 选择抽样,R为记录集合,n为抽取的样本数
% 算法参考:D. E. Knuth, TAOCP, vol.2, pp142,稍有改动
 
% 编写函数时用的测试数据
if ~nargin
    R = 1 : 8;
    n = 4;
end
 
N = length(R);
t = 0;   % 处理过的记录总数
m = 0;   % 已选得的记录数
 
while 1
    U  = rand;
    if (N-t)*U < n-m
        m = m + 1;
        s(m) = R(t+1);
        % 若已抽取到足够的记录,则算法终止
        if m >= n, break, end
    end
    t = t + 1;
end
 
调用实例:
>> sampling(1:100,8)
ans =
     8    21    24    31    42    85    91    92
 

如何产生不重复随机数 如何产生不重复随机数 如何产生不重复随机数 matlab如何产生不重复的随机数啊?比如我想实现产生8个1-----100的随机数,而且不要重复,我自己另外写了一个函数,但是感觉写得不好,有没有现成可用的函数啊? C语言如何产生一组随机数帮忙把产生一组不重复的随机数的程序写一下 如何生成不重复的随机数 我想产生一组401-500的随机数 不重复 matlab 中如何产生0-1上均匀分布的随机数 matlab如何产生二维正态分布随机数 如何产生1000个从1到1000之间的不重复的随机数,用C语言实现! EXCEL 如何在一行中产生1-20范围内不重复的随机数?谢谢!想在A:T列自动产生1-20范围内不重复的随机数(整数),即得出每一行都是不重复的1-20的随机数,同一列重不重复不考虑,如何写公式直接 matlab如何将产生的随机点连接起来.如a=0,产生一个1-10之间的随机数,a=1重复产生1-10之间的随机数.直到a=10,停止.共产生10个随机数,如何将这10个随机点连接起来~ 如何只在3,5,8三个数中产生一个随机数,如何产生一系列中(少于10个)数字不重复的数字.如何只在3,5,8三个数中产生一个随机数,如何产生一系列中(少于10个)数字不重复的数字?如何产生随 怎样用MATLAB产生正弦的随机数? 求java算法:如何生成一组不重复的随机数(比如1到10)Random类生成的随机数都会发生重复,但我想求一个随机数算法,不会产生重复的数(算法中不要用if来判定该随机数是否已出现过,否则执行效率 java随机生成6位数,要求每次产生的随机数与已生成的随机数不重复,小弟觉得用random产生的数可能重复. MATLAB产生两个随机数的问题Matlab产生两个大于零的随机数,且两数相加等于1.如何做到? matlab 产生区间【-5 5】随机数如何用matlab产生固定区间的随机数,其均值方差如何?恳请详细叙述