matlab如何产生不重复的随机数(转)
来源:互联网 发布:如何关闭mac开机声音 编辑:程序博客网 时间:2024/06/10 05:21
以下内容来自百度知道
http://zhidao.baidu.com/link?url=tScG3G3Bq1DMndjiDEm_RxsydMkQuzJqo6X1a5N4lxsVJXPkaBH3mXAFOnXPulmMEH1KPlCn4ERh2BV5YiLNlq
matlab如何产生不重复的随机数啊?
2013-07-20 19:27zhuyuefeng2009|分类:其他编程语言| 浏览652次
比如我想实现产生8个1-----100的随机数,而且不要重复,我自己另外写了一个函数,但是感觉写得不好,有没有现成可用的函数啊?
2013-07-22 07:48提问者采纳
猜测楼主想要的是随机生成不重复的整数吧?如果是浮点数,直接用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
0 0
- matlab如何产生不重复的随机数(转)
- 如何产生一个不重复的随机数
- 如何产生不重复的随机数
- 【Unity&C#&随机数】如何产生连续不重复的随机数
- 一分钟了解“matlab产生不重复的随机数序列”
- 产生不重复的随机数
- 产生不重复的随机数
- 产生不重复的随机数
- 产生不重复的随机数
- 产生不重复的随机数
- 产生不重复的随机数
- 产生不重复的随机数
- 产生不重复的随机数
- 产生不重复的随机数
- 产生不重复的随机数
- 如何让C#产生不重复的随机数
- 如何产生n个不重复的随机数
- 产生不重复随机数
- db2连接问题
- 简简单单实践ERD Commander2005破解Windows密码
- linux scp命令 遇到有端口情况
- andorid 报错bindertransation
- 设置 Oracle 监听器密码(LISTENER)
- matlab如何产生不重复的随机数(转)
- Linux PPP详细介绍
- ZendStudio"No projects are found to import"解决方法
- TinyXML来操作XML文件(C++)<二>
- linux 命令大全(以后整理)
- SAX分析xml文件
- 单链表——小练习题
- XMLHttpRequest cannot load – Origin is not allowed by Access-Control-Allow-Origin.
- CentOS自动更新到6.5后root无法登陆问题解决