當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET Random.Sample方法代碼示例

本文整理匯總了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
開發者ID:VB.NET開發者,項目名稱:System,代碼行數:99,代碼來源:Random.Sample

輸出:

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


注:本文中的System.Random.Sample方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。