主题:  请教怎么做能使随机但不重复呢?

jipanjia

职务:普通成员
等级:1
金币:0.0
发贴:43
#12002/3/17 3:01:44
我现在用 random () 来调用我的试题庫里的东东,但是去发现在所调的题有重复现像,不知道怎样写能避免这一点呢?
我用的是
wordlist:=ReadExtFile(FileLocation^"\\dicru\\wordsound--1\\wordlist.txt")
x:=Random(2,2,1) --共六道题
y:=Random(0,2,1)
z:=Random(0,2,1)
datanumber:=x+y+z
datalist:=GetLine(wordlist,datanumber)
word:=GetLine(datalist,2,2,Tab)
这里面有什么地方不对吗?
请各位大侠帮助!



困龙在天

职务:普通成员
等级:7
金币:10.0
发贴:2942
#22002/3/17 10:47:13
这个方法你参考一下:

1、在一个计算图标中输入以下内容

-- 设置范围
lower:= 1 -- 最小数
upper:= 200   -- 最大数

randomList := []    --随机数列表
tempList := []  -- 所有可能的数列表
counter := 0

--  将所有可能数赋值给templist[]
repeat with i := lower to upper
    counter := counter + 1
    tempList[counter] := i
end repeat

-- 将tempList[]内容随机地赋值给randomList[]
repeat with i := 1 to counter
    elementPos := Random( 1, ListCount( tempList ), 1)
    elementValue := tempList[elementPos]
    randomList[i] := elementValue
    DeleteAtIndex(tempList, elementPos)
end repeat


2、在显示图标中输入"{randomList}"可以随机显示lower到upper间的数字


[url]http://sintian.chinaccd.net[/url]

困龙在天

职务:普通成员
等级:7
金币:10.0
发贴:2942
#32002/3/17 10:48:16
这个方法你参考一下:

1、在一个计算图标中输入以下内容

-- 设置范围
lower:= 1 -- 最小数
upper:= 200   -- 最大数

randomList := [ ]    --随机数列表
tempList := [ ]  -- 所有可能的数列表
counter := 0

--  将所有可能数赋值给templist[ ]
repeat with i := lower to upper
    counter := counter + 1
    tempList[counter] := i
end repeat
 
-- 将tempList[ ]内容随机地赋值给randomList[ ]
repeat with i := 1 to counter
    elementPos := Random( 1, ListCount( tempList ), 1)
    elementValue := tempList[elementPos]
    randomList[i] := elementValue
    DeleteAtIndex(tempList, elementPos)
end repeat


2、在显示图标中输入"{randomList}"可以随机显示lower到upper间的数字


[url]http://sintian.chinaccd.net[/url]

5D荣誉斑竹

职务:普通成员
等级:3
金币:10.0
发贴:954
#42002/4/5 22:25:04
我这个办法可能比较笨,这是在我们浙江信息技术教育上发表的一篇文章,可以实现自动取题,自动积分的功能:
用一个判断图标,repeat域设为times,填你要取的题数或设一个untiltrue,直到一个变量响应为止,branch条件设为不重复。在每一个判断分支下挂一个群组图标,在里面作一个选择交互,设对错,对错都退出交互,进入下一个判断分支。
退出判断后进行统计:
用correctchoicesmatched这个变量写一个表达式进行统计!!!


真正的光明绝不是永没有黑暗的时间,只是永不被黑暗所湮没罢了;真正的英雄绝不是永没有卑下的情操,只是永不被卑下的情操所屈服罢了。