社区
Delphi
帖子详情
请问各位,如何在连续的n个自然数中随机抽取3个不同的数?
pan666
2003-05-21 12:22:36
请问各位,如何在连续的n个自然数中随机抽取3个不同的数?如n=50,则在1-50中取,n=100则在1-100中取,谢谢!
...全文
476
12
打赏
收藏
请问各位,如何在连续的n个自然数中随机抽取3个不同的数?
请问各位,如何在连续的n个自然数中随机抽取3个不同的数?如n=50,则在1-50中取,n=100则在1-100中取,谢谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
踢踏
2003-05-21
打赏
举报
回复
to myling(阿德) :
谢谢提醒,刚才考虑不周。
以下程序只提供思路,没有测试过。
repeat
Randomize; //初始化随机数
a:=Random(n-1)+1; //如果n=50,0<=Random(50-1)<=49
b:=Random(n-1)+1;
c:=Random(n-1)+1;
until (a<>b) and (b<>c) and (a<>C)
耙子
2003-05-21
打赏
举报
回复
呀! 阿德 成猩猩了!恭喜!
myling
2003-05-21
打赏
举报
回复
楼主看看这贴吧,和你的要求相似
http://expert.csdn.net/Expert/topic/1767/1767707.xml?temp=.6174433
myling
2003-05-21
打赏
举报
回复
xxmmmx,你这样可能会取出重复的数字!
firetoucher
2003-05-21
打赏
举报
回复
s[3]: int;
s[1]=s[2]=s[0]=-1;
Randomize;//
for i:= 0 to 2 do
begin
s[i]:= rand()*n;
for j := 0 to i -1 do
if (s[i] = s[j]) and (i <> 0) then
begin
i:= i-1;
break;
end;
end;
输出s
踢踏
2003-05-21
打赏
举报
回复
var
a,b,c: Integer;
Randomize; //初始化随机数
a:=Random(n-1)+1; //如果n=50,0<=Random(50-1)<=49
b:=Random(n-1)+1;
c:=Random(n-1)+1;
hanzq
2003-05-21
打赏
举报
回复
to chechy(简简单单的活)
厉害!真是个好方法
chechy
2003-05-21
打赏
举报
回复
很Easy的,将这些连续的数字放入数组中,然后,随机交换数组中任意两个位置的数字,交换n(n越大,越随机)次后,取数组中的前三个就可以呢。
耙子
2003-05-21
打赏
举报
回复
我这都是灌水管出来的,这个和水平不成正比的。
myling
2003-05-21
打赏
举报
回复
呵呵,耙子,谢谢了
不能和你比呀
那天到C那边逛了一圈,原来你在那边也是双星,哈,厉害,佩服
俺出了delphi区全是一个小三角,哈哈,除了水源
耙子
2003-05-21
打赏
举报
回复
对了楼主这类的问题,可以认为是 从 1~m个连续数字中,取n个不重复的。
这个按照效率可分为2个办法,
1.当 m 和 n 比较接近,类似楼上说的例子 14取10,如果每次都是从14中取一个,这时候取重复数概率比较高,大约每次的重复的概率是 1/14,可以采用阿德帖子里面的算法,因为用一个数组存储m的开销不大。
2.当 m >> n, 我们认为每次取数的概率非常低了,存储m的开销变大了(比如m=1000,我们需要一个1000个元素的数组),我们就只把每次去出来的数纪录就行了,如果重复了,重新抽取一次,这样的开销是最小的。
当然了,这个m和n的界定是一个模糊的概念,看你自己了。
leonkim
2003-05-21
打赏
举报
回复
同意楼上.
抽屉原理(鸽巢原理)
一、抽屉原理初介绍: 桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是我们所说的“抽屉原理”。 抽屉原理的一般含义为:“如果每个抽屉代表一个集合,每一个苹果就可以代表一个元素,假如有n+1个元素放到n个集合
中
去,其
中
必定有一个集合里至少有两个元素。” 抽屉原理有时也被称为鸽巢原理。它是组合
数
学
中
一个重要的原理。 二、抽屉原理详...
python输出偶
数
_python输出偶
数
广告关闭腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元!5的情况时,如果要取舍的位
数
前的小
数
是奇
数
,则直接舍弃,如果是偶
数
则向上取舍。 注:“.5”这个是一个“坑”,且python2和python3出来的接口有时候是不...整
数
的输出%o——oct八进制%d——dec十进制%x——hex十六进制? 浮点
数
(小
数
)的输出格式化输出>&...
抽屉原理及其例题应用介绍
转载自这位大佬!!! 抽屉原理(鸽巢原理)——一定要多做题 介绍一下抽屉原理,又名鸽巢原理,反正它的名字好多的,自己百度吧(ฅ>ω<ฅ)* 由于下面给大家的锻炼思维的题目比较多,想看代码的直接拉到最下面就行,有一道题目和AC代码 一、抽屉原理初介绍: 桌上有十个苹果,要把这十个苹果放到九个抽屉里,无论怎样放,我们会发现至少会有一个抽屉里面至少放两个苹果。这一现象就是我们所说的...
python编程题
7-1 jmu-Java&Python-统计一段文字
中
的单词个
数
并按单词的字母顺序排序后输出 (10 分) 现需要统计若干段文字(英文)
中
的
不同
单词
数
量。如果
不同
的单词
数
量不超过10个,则将所有单词输出(按字母顺序),否则输出前10个单词。 注1:单词之间以空格(1个或多个空格)为间隔。注2:忽略空行或者空格行。注3:单词大小写敏感,即'word'与'WORD'是两...
C语言课程实验8
C语言第八次实验 (1)编写一个函
数
判定给定的一个
数
n是否属于Fibonacci
数
列
中
的一项,函
数
的返回值为0(不属于)或者1(属于)。 思路 遍历Fibonacci
数
列的每一项,当第i项
数
小于n时,判断i+1项
数
与n的大小。 如果第i+1项小于n,继续查找; 如果第i+1项等于n,则查找成功; 如果第i+1项大于n,说明n不属于Fibonacci
数
列。 伪代码 while fib[i] < n: if fib[i+1] == n: find successful else if fib[i+
Delphi
5,388
社区成员
262,730
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章