Print

ppt抽签怎么避免重复抽

问:PPT中随机抽词,不重复
  1. 答:最简单的不重复随机数算法是这样的。
    假如要取0-9个随机数
    那么先定义一个10个元素数组,存放0-9的值。再定义一个数字,存放数组有效元素的起始下标。
    然后取随机数,范围为0-当前数组有效元素个数。 第一次为0-10(即取包含0,不包含10的随机数)。
    假设第一次取到是5。
    那么将数组中第5个元素输出,然后将第5个元素置为有效元素的起始下标(此时是0),有效元素的起始下标置为-1(这步做不做无所谓。),数组有效元素下标+1
    继续取1-9,假设下一个随机数是5,那么将第5个元素输出,然后将第5个元素置为有效元素的起始下标(此时是1),数组有效元素下标+1。
    继续取2-9,假设下一个随机数是5,那么将第5个元素输出,然后将第5个元素置为有效元素的起始下标(此时是2),数组有效元素下标+1。
    以此类推,直到取了10次随机数,10个数字都被取出,循环结束。
问:单位搞知识竞赛,用ppt2010做了一个抽题软件,但是老是会有题目被重复抽出来,请教:
  1. 答:试试这个吧,应该可以用
    Private mandButton1_Click()
    flag = False
    Dim q As Integer
    Do While flag = False
    q = Fix(Rnd * 300 + 1) '使用随机函数
    抽取框.Text = q
    DoEvents
    Loop
    End Sub
    Private Sub 抽取框_Change()
    End Sub
    Private Sub 开始_Click()
    flag = True
    抽取框.Text = ""
    Static n As Integer
    n = n + 1
    If n > 300 Then
    MsgBox ("题目已抽完")
    Exit Sub
    End If
    Do
    x = Int((300 - 1 + 1) * Rnd + 1)
    j = True
    For i = 1 To n - 1
    If x = a(i) Then j = False: Exit For
    Next i
    Loop Until j
    a(n) = x
    抽取框.Text = a(n)
    End Sub
    Private Sub 打开抽取的题目_Click()
    ActivePresentation.SlideShowWindow.View.GotoSlide Val(抽取框.Text + 1)
    End Sub
  2. 答:可以试试顶伯知识竞赛系统,直接可以设置随机出题,不用函数
  3. 答:用数组,抽取过的就从数组中删除
  4. 答:前些年刚工作的时候,他们还会在提起自己女儿的时候眉眼间都是欣喜,可现在不了,他们会因为我没有成立自己的家庭而感到有些抬不起头。
问:怎么能让抽签不重复
  1. 答:首先,分组数必须大于等于N,才能保证不至于使得同一个院系的队伍在同一个组里。
    第二,分组数必须小于等于N,才能保证每个组每个院系都有队伍。
    所以只能分成N个组,把每个院系的N个不同水平级别的队伍放入这N个组就可以了,每个组放一个队伍,随机放入就变成混合比赛。
    具体方法是,抽签条做成1--N的N张,每个院系的N个队伍一起抽签,抽到1的进每一组,抽到2的进第二组,以此类推。
    后面的小组分组比赛要根据每个小组的队伍数以及你设置的比赛规则(循环赛还是淘汰赛)来设置,在这里就无法确定了

本文来源: https://www.lunwen90.cn/article/08a4c7a91fc28fc525b649dc.html