每个随机数只在一个数组中一次

时间:2018-05-15 20:01:01

标签: smallbasic

我最近开始使用SmallBasic进行编程,我想知道是否可以检查数组中是否已存在随机数。 到目前为止我的代码:

Count = 10
For i = 1 to Count
  var[i] = Math.GetRandomNumer(100)
  TextWindow.Write(var[i] + ‘,’)
Endfor 

提前致谢:)

2 个答案:

答案 0 :(得分:1)

这似乎运作良好:

Count = 10

For i = 1 to Count+1
  If (duplicate) Then
    i = i - 1 
    duplicate = "False"
  EndIf

  var[i] = Math.GetRandomNumber(10)

  For u = 1 To i-1
    If var[i] = var[u] Then
      duplicate = "True"
      EndIf
    EndFor
  Endfor 


  For y = 1 To Count
    TextWindow.Write(var[y] + ", ")
  EndFor

答案 1 :(得分:0)

这个版本可能是最快的。它利用了Smallbasic中的数组实际上是Maps并存储在字符串中的事实。与其他语言的数组操作相比,这使得它们非常慢。但是,如果将数组视为字符串,则可以以惊人的速度执行某些操作。

numberList[0] = 0
For i = 1 To 100
  choice = 0
  While Text.IsSubText(numberList, "=" + choice + ";")
    choice = Math.GetRandomNumber(100)
  EndWhile
  numberList[i] = choice
EndFor

For i = 1 To  100
  TextWindow.Write(numberList[i] + " ")
EndFor