易码技术论坛

 找回密码
 加入易码
搜索
查看: 446770|回复: 12

有关随机数列

[复制链接]
发表于 2006-8-25 13:40:40 | 显示全部楼层
哈哈,不知道,可能可以用IF A=I THEN ***的语句实现
发表于 2006-8-25 16:43:05 | 显示全部楼层
不重复??
可以构造一个数组。
具体实施还是有点麻烦。。。
让我再想想。
 楼主| 发表于 2006-8-25 17:07:36 | 显示全部楼层
有劳了各位。
我想过,用数组,然后随机出一个随机数,
之后把随机出来的规类,
用两个数组相比较
可是这样实行起来实在有些麻烦。
加入wqx随机出来的一直是随机过的,程序不就卡死了 吗?


或者想办法让wqx改变任意数组的顺序的算法也可以。
发表于 2006-8-25 17:14:11 | 显示全部楼层
我试过了。。。

10 DIM A(100)
15 FOR I=1 TO 100:A(I)=I:NEXT I
20 FOR I=100 TO 1 STEP -1
30 RAND=INT(RND(.1)*I)+1
40 SWAP A(I),A(RAND)
50 NEXT I

在朋友的启发下写出来了。。。。
 楼主| 发表于 2006-8-25 18:56:04 | 显示全部楼层
能说说关键的地方吗?
发表于 2006-8-25 20:25:20 | 显示全部楼层
我都写出来了。。。自己看
 楼主| 发表于 2006-8-26 09:56:35 | 显示全部楼层
可以告诉我rnd(.1) (0) (2)
有什么区别吗?
wqx中帮助说得么么忽忽的
发表于 2006-8-26 10:58:06 | 显示全部楼层
我不知道,但是一般我都使用.1,很多人用0。
看了帮助文件:RND(X):
如果X>0每次产生不同的随机数
IF  X<0 产生序列的随机数
IF  X=0输出上次产生的随机数(不懂)
发表于 2006-9-1 19:04:35 | 显示全部楼层
rand(0)是出现有规律的数,>0是随即的,<0是相同数
发表于 2006-9-1 19:16:15 | 显示全部楼层
其实算法不难,用两个数组,如果是单用做显示的话,一个就够了
首先给定一个范围的数组比如(1-10)令这个数组的全部元素为0
然后随即产生的数就在相应位子的地方改作1
算法如下:
10 M=1
20 FOR I=1 TO 10
30 A(I)=0
40 NEXT
50 C=INT(RND(1)*10)+1
60 IF A(C) THEN  50 ELSE B(M)=C:A(C)=1:M=M+1
70 IF M=10 THEN END ELSE 50
发表于 2006-10-21 19:59:45 | 显示全部楼层
ls的....你的算法没我的简单
如果是要求到1000个数之内的随机不循环数列,
按理论要算1000*999/2个随机数
而我的只要1000个随机数
 楼主| 发表于 2006-8-25 12:20:02 | 显示全部楼层 |阅读模式
  帮帮帮帮哈

求助:

有人知道如何让 bas实现在指定范围内随机抽取不重复的数字的算发?


我想在语文攻略实现这个功能。


谢谢!
 楼主| 发表于 2008-1-9 10:57:41 | 显示全部楼层
时隔多年,翻到老帖子了,哈哈
还是想谢谢still4前辈的帮忙啊
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

Archiver|手机版|小黑屋|EMAX Studio

GMT+8, 2024-3-29 15:27 , Processed in 0.010311 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表