本文整理汇总了VB.NET中System.Random.Sample方法的典型用法代码示例。如果您正苦于以下问题:VB.NET Random.Sample方法的具体用法?VB.NET Random.Sample怎么用?VB.NET Random.Sample使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Random
的用法示例。
在下文中一共展示了Random.Sample方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的VB.NET代码示例。
示例1: RandomProportional
' This derived class converts the uniformly distributed random
' numbers generated by base.Sample( ) to another distribution.
Public Class RandomProportional
Inherits Random
' The Sample method generates a distribution proportional to the value
' of the random numbers, in the range [0.0, 1.0].
Protected Overrides Function Sample( ) As Double
Return Math.Sqrt( MyBase.Sample( ) )
End Function
Public Overrides Function [Next]() As Integer
Return Sample() * Integer.MaxValue
End Function
End Class
Module RandomSampleDemo
Sub Main( )
Const rows As Integer = 4, cols As Integer = 6
Const runCount As Integer = 1000000
Const distGroupCount As Integer = 10
Const intGroupSize As Double = _
( CDbl( Integer.MaxValue ) + 1.0 ) / _
CDbl( distGroupCount )
Dim randObj As New RandomProportional( )
Dim intCounts( distGroupCount ) As Integer
Dim realCounts( distGroupCount ) As Integer
Dim i As Integer, j As Integer
Console.WriteLine( vbCrLf & _
"The derived RandomProportional class overrides " & _
"the Sample method to " & vbCrLf & _
"generate random numbers in the range " & _
"[0.0, 1.0]. The distribution " & vbCrLf & _
"of the numbers is proportional to their numeric " & _
"values. For example, " & vbCrLf & _
"numbers are generated in the vicinity of 0.75 " & _
"with three times " & vbCrLf & "the " & _
"probability of those generated near 0.25." )
Console.WriteLine( vbCrLf & _
"Random doubles generated with the NextDouble( ) " & _
"method:" & vbCrLf )
' Generate and display [rows * cols] random doubles.
For i = 0 To rows - 1
For j = 0 To cols - 1
Console.Write( "{0,12:F8}", randObj.NextDouble( ) )
Next j
Console.WriteLine( )
Next i
Console.WriteLine( vbCrLf & _
"Random integers generated with the Next( ) " & _
"method:" & vbCrLf )
' Generate and display [rows * cols] random integers.
For i = 0 To rows - 1
For j = 0 To cols - 1
Console.Write( "{0,12}", randObj.Next( ) )
Next j
Console.WriteLine( )
Next i
Console.WriteLine( vbCrLf & _
"To demonstrate the proportional distribution, " & _
"{0:N0} random " & vbCrLf & _
"integers and doubles are grouped into {1} " & _
"equal value ranges. This " & vbCrLf & _
"is the count of values in each range:" & vbCrLf, _
runCount, distGroupCount )
Console.WriteLine( "{0,21}{1,10}{2,20}{3,10}", _
"Integer Range", "Count", "Double Range", "Count" )
Console.WriteLine( "{0,21}{1,10}{2,20}{3,10}", _
"-------------", "-----", "------------", "-----" )
' Generate random integers and doubles, and then count
' them by group.
For i = 0 To runCount - 1
intCounts( Fix( CDbl( randObj.Next( ) ) / _
intGroupSize ) ) += 1
realCounts( Fix( randObj.NextDouble( ) * _
CDbl( distGroupCount ) ) ) += 1
Next i
' Display the count of each group.
For i = 0 To distGroupCount - 1
Console.WriteLine( _
"{0,10}-{1,10}{2,10:N0}{3,12:N5}-{4,7:N5}{5,10:N0}", _
Fix( CDbl( i ) * intGroupSize ), _
Fix( CDbl( i + 1 ) * intGroupSize - 1.0 ), _
intCounts( i ), _
CDbl( i ) / CDbl( distGroupCount), _
CDbl( i + 1 ) / CDbl( distGroupCount ), _
realCounts( i ) )
Next i
End Sub
End Module
输出:
The derived RandomProportional class overrides the Sample method to generate random numbers in the range [0.0, 1.0]. The distribution of the numbers is proportional to their numeric values. For example, numbers are generated in the vicinity of 0.75 with three times the probability of those generated near 0.25. Random doubles generated with the NextDouble( ) method: 0.28377004 0.75920598 0.33430371 0.66720626 0.97080243 0.27353772 0.17787962 0.54618410 0.08145080 0.56286100 0.99002910 0.64898614 0.27673277 0.99455281 0.93778966 0.76162002 0.70533771 0.44375798 0.55939883 0.87383136 0.66465779 0.77392566 0.42393411 0.82409159 Random integers generated with the Next( ) method: 1364479914 1230312341 1657373812 1526222928 988564704 700078020 1801013705 1541517421 1146312560 338318389 1558995993 2027260859 884520932 1320070465 570200106 1027684711 943035246 2088689333 630809089 1705728475 2140787648 2097858166 1863010875 1386804198 To demonstrate the proportional distribution, 1,000,000 random integers and doubles are grouped into 10 equal value ranges. This is the count of values in each range: Integer Range Count Double Range Count ------------- ----- ------------ ----- 0- 214748363 9,892 0.00000-0.10000 9,928 214748364- 429496728 30,341 0.10000-0.20000 30,101 429496729- 644245093 49,958 0.20000-0.30000 49,964 644245094- 858993458 70,099 0.30000-0.40000 70,213 858993459-1073741823 90,801 0.40000-0.50000 89,553 1073741824-1288490187 109,699 0.50000-0.60000 109,427 1288490188-1503238552 129,438 0.60000-0.70000 130,339 1503238553-1717986917 149,886 0.70000-0.80000 150,000 1717986918-1932735282 170,338 0.80000-0.90000 170,128 1932735283-2147483647 189,548 0.90000-1.00000 190,347