0

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

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

提前致谢:)

4

2 回答 2

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
于 2018-05-16T14:21:38.080 回答
0

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

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
于 2018-05-25T12:29:44.730 回答