找回密码
 加入
搜索
查看: 2485|回复: 9

随机取数数“用过的再不取”?

[复制链接]
发表于 2008-6-24 11:37:16 | 显示全部楼层 |阅读模式
比如,在01到10中随机取数字,怎样实现“用过的再不取”?
发表于 2008-6-24 12:22:09 | 显示全部楼层
$n=5 ;要取的总个数
$Bx=""  ;显示用
dim $A[11];存放1-10个数
dim $B[$N+1];存放取出的数
for $i=1 to 10  ;放数进去
        $a[$i]=$i
Next
$x=10  ;使用数的个数
for $i=1 to $n
        $y=Random(1,$x,1)
        $B[$i]=$A[$y]
        for $j=$y to $x-1
                $A[$j]=$A[$j+1]
        Next
        $x=$x-1
Next
for $i=1 to $n
        $Bx=$BX&" "&$B[$i]
Next
MsgBox(0,"",$Bx)
发表于 2008-6-24 17:13:53 | 显示全部楼层
帮楼上改一下
#include "array.au3"

$n = 5 ;要取的总个数
$Bx = "" ;显示用
Dim $A[11];存放1-10个数
For $i = 1 To 10 ;放数进去
        $A[$i] = $i
Next
For $i = 1 To $n
        $y = Random(1, UBound($A)-1, 1);此处经验证需改为UBound($A)-1,
        $Bx &=$A[$y]&" "
        _ArrayDelete($A, $y)
Next
MsgBox(0, "", $Bx)


[ 本帖最后由 pcbar 于 2008-6-30 15:41 编辑 ]
发表于 2008-6-25 09:55:09 | 显示全部楼层
看过了。不错
发表于 2008-6-29 12:30:47 | 显示全部楼层
哇,好有用!
谢谢!
发表于 2008-6-30 10:38:19 | 显示全部楼层
   受教了
发表于 2008-6-30 11:19:20 | 显示全部楼层
pcbar 的UBound($A)要减去1
#include "array.au3"
 
$n = 5 ;要取的总个数
$Bx = "" ;显示用
Dim $A[11];存放1-10个数
For $i = 1 To 10 ;放数进去
    $A[$i] = $i
Next
For $i = 1 To $n
    $y = Random(1, UBound($A)-1, 1)
    $Bx &=$A[$y]&" "
    _ArrayDelete($A, $y)
Next
MsgBox(0, "", $Bx)
发表于 2008-6-30 15:39:58 | 显示全部楼层
原帖由 jhwl 于 2008-6-30 11:19 发表
pcbar 的UBound($A)要减去1
[au3]#include "array.au3"

$n = 5 ;要取的总个数
$Bx = "" ;显示用
Dim $A[11];存放1-10个数
For $i = 1 To 10 ;放数进去
    $A[$i] = $i
Next
For $i = 1 To $n
    $y =  ...

多谢指正
发表于 2008-11-16 21:53:28 | 显示全部楼层
有时会用到
发表于 2009-10-18 12:26:05 | 显示全部楼层
老大们很强啊,学习了
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-22 18:13 , Processed in 0.089221 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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