易码技术论坛

 找回密码
 加入易码
搜索
查看: 190809|回复: 4

有关随机数列2

[复制链接]
发表于 2006-10-29 23:12:03 | 显示全部楼层
contain什么意思?
发表于 2006-10-30 20:21:26 | 显示全部楼层
汗~~这样换比较麻烦...
先产生随技数列,但是只是另外一个数组.
需要这些数据的时候,根据每个数组的值,调用不同的数据.
比如: i=1  a(i)=12
那么就调用z$(a(i))  y$(a(i))


上面的程序白屏?估计是循环没有结束.你那个循环控制的好多啊,比较费时间.

510 R=INT(RND(2)*100+1)*(C>9)+INT(RND(2)*10+1)*(C<10):R=R*(C-R)
520 IF NOT R THEN 510
530 FOR I=1 TO R
540 R1=INT(RND(2)*100+1)*(C>9)+INT(RND(2)*10+1)*(C<10):R1=R1*(C-R1)
550 R2=INT(RND(2)*100+1)*(C>9)+INT(RND(2)*10+1)*(C<10):R2=R2*(C-R2)
560 IF NOT(R1 AND R2) THEN 540
570 SWAP A(R1),A(R2)
580 NEXT

这样应该能行了...


不过干嘛要产生2个随机数呢?
把一个数固定为从0-C 或者 C-0不是挺好的吗?
发表于 2006-11-2 13:42:49 | 显示全部楼层
打乱顺序其实是产生一组成重复的数据,这个规则与随机产生一副(54张)扑克牌的原理一样,你可以这样做!
10 FOR I=1 TO 54:A(I)=0:B(I)=0:NEXT
20 FOR I=1 TO 54:A(I)=INT(RAND(1)*54)
30 IF B(A(I))=1 THEN 20
40 B(A(I))=1:NEXT
这样产生的一组数据就是不重复的随机数了!我在编牌类游戏时就是用的这个方法洗牌的!
 楼主| 发表于 2006-11-4 19:11:48 | 显示全部楼层
Thankyou!
语文攻略beta3出炉了,请前辈们多提意见
 楼主| 发表于 2006-10-29 09:16:18 | 显示全部楼层 |阅读模式
  各位前辈!尤其still4请进。
上次有关随机数列的提问,感谢您的解答。由于当时在网吧苦于无纸笔。。。
在您的思路的启示下我写下了以下的一些代码。请您指点:

已经定义了两个Z$(99),Y$(99)数组。分别存储一组相互对应的数据。如z$(1)为1的姓,y$(1)为1的名
但是99仅仅是上限。有可能数据只从1保存到contain个
我想打乱顺序:

500 CLSRINT "正在准备数据..."
510 IF CONTAIN>9 THEN R=INT(RND(2)*100)ELSE R=INT(RND(2)*10)
520 IF R>CONTAIN OR R=0 THEN 510
530 FOR I=1 TO R
540 IF CONTAIN>9 THEN RR=INT(RND(2)*100)ELSE RR=INT(RND(2)*10)
550 IF CONTAIN>9 THEN RRR=INT(RND(2)*100)ELSE RRR=INT(RND(2)*10)
560 IF RR>CONTAIN OR RRR>CONTAIN THEN GOTO 540
570 SWAP Z$(RR),Z$(RRR):SWAP Y$(RR),Y$(RRR)
580 NEXT
590 PRINT "准备结束!按任意键继续..."

wqx执行之后,会出现空白的情况。请前辈们指点。
临帖涕零 不甚感激。
您需要登录后才可以回帖 登录 | 加入易码

本版积分规则

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

GMT+8, 2024-4-27 21:49 , Processed in 0.013524 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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