高分求教:如何在制定范围内随机抽出6个数字,而且每个数字间的差值不小于指定数?

applehoo 2003-07-24 07:51:45
具体:在0-100件抽出6个数字,每个数字间差值不小于2.?
...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
dropingleaf 2003-07-24
  • 打赏
  • 举报
回复
答:victorycyz(中海)
我不知道有没有random(i)这个函数,不过这个函数的意思就是取0-i之间的数!
dropingleaf 2003-07-24
  • 打赏
  • 举报
回复
上面一个算法还是有点毛病的
a[0]=random(90)
i=1
while (i<6)
t=random(100-a[i-1]-2*(5-i))
if t<2 then
a[i]=a[i-1]+2
else
a[i]=a[i-1]+t
end if
next
victorycyz 2003-07-24
  • 打赏
  • 举报
回复
dropingleaf(叶孤飞云):
请问一下VB有random()这个函数吗?并且参数就是其随机取值范围?
dropingleaf 2003-07-24
  • 打赏
  • 举报
回复
a[0]=random(90)
i=1
while (i<6)
a[i]=a[i-1]+random(100-a[i-1]-2*(5-i))
next
dropingleaf 2003-07-24
  • 打赏
  • 举报
回复
不好意思,刚才做反了
dropingleaf 2003-07-24
  • 打赏
  • 举报
回复
你可以取0-90之间,任取一个数,然后你给一个数加一或二。
i=1
a[0]=random(90)
while (i<6)
t=random(1)+1
a[i]=a[i-1]+t
next
victorycyz 2003-07-24
  • 打赏
  • 举报
回复
总觉得有条件限制,就不叫随机数了。带有人为干扰的痕迹。
applehoo 2003-07-24
  • 打赏
  • 举报
回复
to dropingleaf(叶孤飞云)
“在制定范围内随机抽出6个数字,而且每个数字间的差值不小于指定数”
没有规定 前一个数字和后一个数字是否有关系,也就是说不一定是前面的加2 或指定的T,只要不小于指定的T,就是满足条件的数字。
....
t=random(100-a[i-1]-2*(5-i))
if t<2 then
a[i]=a[i-1]+2
else
a[i]=a[i-1]+t
end if
...
不是随机选取T,而是随机选取A(i)
applehoo 2003-07-24
  • 打赏
  • 举报
回复
请就问题回答,谢谢各位高手,知道的请赐教一二,这个问题对我比较重要!谢谢!

to victorycyz(中海)
看您的级别是个高手,希望能给点意见!谢谢!!(另 :按照条件 选择随机数正是我需要的。)

to dropingleaf(叶孤飞云)
你的思路很好,能否就题目给个比较普遍的算法呢 ?谢谢 !


1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧