我创建了一个整数数组,并想从中选择一个随机元素。我怎么做?
			
			30326 次
		
4 回答
            6        
        
		
YourArray(New Random().Next(0,YourArray.Length-1))
或者为了更清楚而分开:
Dim Rand as New Random()
Dim Index as Integer = Rand.Next(0, YourArray.Length - 1)
Dim SelectedValue = YourArray(Index)
于 2013-01-14T01:30:29.087   回答
    
    
            1        
        
		
0在 到 的范围内生成一个随机整数Len-1,其中Len是数组的长度。要生成随机整数,请使用Random该类的实例。
DIM rand As New Random
DIM idx as rand.Next(0, Len)
REM Now you can pick an element idx from the array
REM to get a random element.
DIM res as myArray(index)
于 2013-01-14T01:30:02.730   回答
    
    
            1        
        
		
Rnd可以得到[0,1),然后再多倍你的arraylength,你可以得到[0,YourArrayLength)之间的数字
Randomize
Int(array.length* Rnd)
于 2013-01-14T01:35:53.940   回答
    
    
            0        
        
		
只想说接受的答案是不正确的。
这是正确的
Dim Rand as New Random()
Dim Index as Integer = Rand.Next(0, YourArray.Length)
Dim SelectedValue = YourArray(Index)
为什么?
因为最大值是排他的。因此,如果您不想在 3 个元素中进行选择,例如,最大值应该是 3,而不是 2。
    '
    ' Summary:
    '     Returns a non-negative random integer.
    '
    ' Returns:
    '     A 32-bit signed integer that is greater than or equal to 0 and less than System.Int32.MaxValue.
    Public Overridable Function [Next]() As Integer
    '
    ' Summary:
    '     Returns a random integer that is within a specified range.
    '
    ' Parameters:
    '   minValue:
    '     The inclusive lower bound of the random number returned.
    '
    '   maxValue:
    '     The **exclusive** upper bound of the random number returned. maxValue must be greater
    '     than or equal to minValue.
    '
    ' Returns:
    '     A 32-bit signed integer greater than or equal to minValue and **less than** maxValue;
    '     that is, the range of return values includes minValue but not maxValue. If minValue
    '     equals maxValue, minValue is returned.
    '
    ' Exceptions:
    '   T:System.ArgumentOutOfRangeException:
    '     minValue is greater than maxValue.
于 2021-05-16T00:51:41.920   回答
    
    