本文整理汇总了VB.NET中System.Random类的典型用法代码示例。如果您正苦于以下问题:VB.NET Random类的具体用法?VB.NET Random怎么用?VB.NET Random使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了Random类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的VB.NET代码示例。
示例1: Example
Module Example
Public Sub Main()
' Instantiate random number generator using system-supplied value as seed.
Dim rand As New Random()
' Generate and display 5 random byte (integer) values.
Dim bytes(4) As Byte
rand.NextBytes(bytes)
Console.WriteLine("Five random byte values:")
For Each byteValue As Byte In bytes
Console.Write("{0, 5}", byteValue)
Next
Console.WriteLine()
' Generate and display 5 random integers.
Console.WriteLine("Five random integer values:")
For ctr As Integer = 0 To 4
Console.Write("{0,15:N0}", rand.Next)
Next
Console.WriteLine()
' Generate and display 5 random integers between 0 and 100.'
Console.WriteLine("Five random integers between 0 and 100:")
For ctr As Integer = 0 To 4
Console.Write("{0,8:N0}", rand.Next(101))
Next
Console.WriteLine()
' Generate and display 5 random integers from 50 to 100.
Console.WriteLine("Five random integers between 50 and 100:")
For ctr As Integer = 0 To 4
Console.Write("{0,8:N0}", rand.Next(50, 101))
Next
Console.WriteLine()
' Generate and display 5 random floating point values from 0 to 1.
Console.WriteLine("Five Doubles.")
For ctr As Integer = 0 To 4
Console.Write("{0,8:N3}", rand.NextDouble())
Next
Console.WriteLine()
' Generate and display 5 random floating point values from 0 to 5.
Console.WriteLine("Five Doubles between 0 and 5.")
For ctr As Integer = 0 To 4
Console.Write("{0,8:N3}", rand.NextDouble() * 5)
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:43,代码来源:Random 输出:
Five random byte values:
194 185 239 54 116
Five random integer values:
507,353,531 1,509,532,693 2,125,074,958 1,409,512,757 652,767,128
Five random integers between 0 and 100:
16 78 94 79 52
Five random integers between 50 and 100:
56 66 96 60 65
Five Doubles.
0.943 0.108 0.744 0.563 0.415
Five Doubles between 0 and 5.
2.934 3.130 0.292 1.432 4.369
示例2: Example
Module Example
Public Sub Main()
Dim rnd As New Random()
Dim malePetNames() As String = { "Rufus", "Bear", "Dakota", "Fido",
"Vanya", "Samuel", "Koani", "Volodya",
"Prince", "Yiska" }
Dim femalePetNames() As String = { "Maggie", "Penny", "Saya", "Princess",
"Abby", "Laila", "Sadie", "Olivia",
"Starlight", "Talla" }
' Generate random indexes for pet names.
Dim mIndex As Integer = rnd.Next(malePetNames.Length)
Dim fIndex As Integer = rnd.Next(femalePetNames.Length)
' Display the result.
Console.WriteLine("Suggested pet name of the day: ")
Console.WriteLine(" For a male: {0}", malePetNames(mIndex))
Console.WriteLine(" For a female: {0}", femalePetNames(fIndex))
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:20,代码来源:Random 输出:
Suggested pet name of the day:
For a male: Koani
For a female: Maggie
示例3: modMain
Module modMain
Public Sub Main()
Dim bytes1(99), bytes2(99) As Byte
Dim rnd1 As New Random()
Dim rnd2 As New Random()
rnd1.NextBytes(bytes1)
rnd2.NextBytes(bytes2)
Console.WriteLine("First Series:")
For ctr As Integer = bytes1.GetLowerBound(0) to bytes1.GetUpperBound(0)
Console.Write("{0, 5}", bytes1(ctr))
If (ctr + 1) Mod 10 = 0 Then Console.WriteLine()
Next
Console.WriteLine()
Console.WriteLine("Second Series:")
For ctr As Integer = bytes2.GetLowerBound(0) to bytes2.GetUpperBound(0)
Console.Write("{0, 5}", bytes2(ctr))
If (ctr + 1) Mod 10 = 0 Then Console.WriteLine()
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:23,代码来源:Random 输出:
First Series:
97 129 149 54 22 208 120 105 68 177
113 214 30 172 74 218 116 230 89 18
12 112 130 105 116 180 190 200 187 120
7 198 233 158 58 51 50 170 98 23
21 1 113 74 146 245 34 255 96 24
232 255 23 9 167 240 255 44 194 98
18 175 173 204 169 171 236 127 114 23
167 202 132 65 253 11 254 56 214 127
145 191 104 163 143 7 174 224 247 73
52 6 231 255 5 101 83 165 160 231
Second Series:
97 129 149 54 22 208 120 105 68 177
113 214 30 172 74 218 116 230 89 18
12 112 130 105 116 180 190 200 187 120
7 198 233 158 58 51 50 170 98 23
21 1 113 74 146 245 34 255 96 24
232 255 23 9 167 240 255 44 194 98
18 175 173 204 169 171 236 127 114 23
167 202 132 65 253 11 254 56 214 127
145 191 104 163 143 7 174 224 247 73
52 6 231 255 5 101 83 165 160 231
示例4: Example
' 导入命名空间
Imports System.Threading
Module Example
<ThreadStatic> Dim previous As Double = 0.0
<ThreadStatic> Dim perThreadCtr As Integer = 0
<ThreadStatic> Dim perThreadTotal As Double = 0.0
Dim source As New CancellationTokenSource()
Dim countdown As New CountdownEvent(1)
Dim randLock As New Object()
Dim numericLock As New Object()
Dim rand As New Random()
Dim totalValue As Double = 0.0
Dim totalCount As Integer = 0
Public Sub Main()
Thread.CurrentThread.Name = "Main"
Dim token As CancellationToken = source.Token
For threads As Integer = 1 To 10
Dim newThread As New Thread(AddressOf GetRandomNumbers)
newThread.Name = threads.ToString()
newThread.Start(token)
Next
GetRandomNumbers(token)
countdown.Signal()
' Make sure all threads have finished.
countdown.Wait()
Console.WriteLine()
Console.WriteLine("Total random numbers generated: {0:N0}", totalCount)
Console.WriteLine("Total sum of all random numbers: {0:N2}", totalValue)
Console.WriteLine("Random number mean: {0:N4}", totalValue/totalCount)
End Sub
Private Sub GetRandomNumbers(o As Object)
Dim token As CancellationToken = CType(o, CancellationToken)
Dim result As Double = 0.0
countdown.AddCount(1)
Try
For ctr As Integer = 1 To 2000000
' Make sure there's no corruption of Random.
token.ThrowIfCancellationRequested()
SyncLock randLock
result = rand.NextDouble()
End SyncLock
' Check for corruption of Random instance.
If result = previous AndAlso result = 0 Then
source.Cancel()
Else
previous = result
End If
perThreadCtr += 1
perThreadTotal += result
Next
Console.WriteLine("Thread {0} finished execution.",
Thread.CurrentThread.Name)
Console.WriteLine("Random numbers generated: {0:N0}", perThreadCtr)
Console.WriteLine("Sum of random numbers: {0:N2}", perThreadTotal)
Console.WriteLine("Random number mean: {0:N4}", perThreadTotal/perThreadCtr)
Console.WriteLine()
' Update overall totals.
SyncLock numericLock
totalCount += perThreadCtr
totalValue += perThreadTotal
End SyncLock
Catch e As OperationCanceledException
Console.WriteLine("Corruption in Thread {1}", e.GetType().Name, Thread.CurrentThread.Name)
Finally
countdown.Signal()
source.Dispose()
End Try
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:79,代码来源:Random 输出:
Thread 6 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,491.05
Random number mean: 0.5002
Thread 10 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,329.64
Random number mean: 0.4997
Thread 4 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,166.89
Random number mean: 0.5001
Thread 8 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,628.37
Random number mean: 0.4998
Thread Main finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,920.89
Random number mean: 0.5000
Thread 3 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,370.45
Random number mean: 0.4997
Thread 7 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,330.92
Random number mean: 0.4997
Thread 9 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,172.79
Random number mean: 0.5001
Thread 5 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,079.43
Random number mean: 0.5000
Thread 1 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,817.91
Random number mean: 0.4999
Thread 2 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,930.63
Random number mean: 0.5000
Total random numbers generated: 22,000,000
Total sum of all random numbers: 10,998,238.98
Random number mean: 0.4999
示例5: Example
' 导入命名空间
Imports System.Collections.Generic
Imports System.Threading
Imports System.Threading.Tasks
Module Example
Dim source As New CancellationTokenSource()
Dim randLock As New Object()
Dim numericLock As New Object()
Dim rand As New Random()
Dim totalValue As Double = 0.0
Dim totalCount As Integer = 0
Public Sub Main()
Dim tasks As New List(Of Task)()
For ctr As Integer = 1 To 10
Dim token As CancellationToken = source.Token
Dim taskNo As Integer = ctr
tasks.Add(Task.Run(
Sub()
Dim previous As Double = 0.0
Dim taskCtr As Integer = 0
Dim taskTotal As Double = 0.0
Dim result As Double = 0.0
For n As Integer = 1 To 2000000
' Make sure there's no corruption of Random.
token.ThrowIfCancellationRequested()
SyncLock randLock
result = rand.NextDouble()
End SyncLock
' Check for corruption of Random instance.
If result = previous AndAlso result = 0 Then
source.Cancel()
Else
previous = result
End If
taskCtr += 1
taskTotal += result
Next
' Show result.
Console.WriteLine("Task {0} finished execution.", taskNo)
Console.WriteLine("Random numbers generated: {0:N0}", taskCtr)
Console.WriteLine("Sum of random numbers: {0:N2}", taskTotal)
Console.WriteLine("Random number mean: {0:N4}", taskTotal/taskCtr)
Console.WriteLine()
' Update overall totals.
SyncLock numericLock
totalCount += taskCtr
totalValue += taskTotal
End SyncLock
End Sub, token))
Next
Try
Task.WaitAll(tasks.ToArray())
Console.WriteLine()
Console.WriteLine("Total random numbers generated: {0:N0}", totalCount)
Console.WriteLine("Total sum of all random numbers: {0:N2}", totalValue)
Console.WriteLine("Random number mean: {0:N4}", totalValue/totalCount)
Catch e As AggregateException
For Each inner As Exception In e.InnerExceptions
Dim canc As TaskCanceledException = TryCast(inner, TaskCanceledException)
If canc IsNot Nothing Then
Console.WriteLine("Task #{0} cancelled.", canc.Task.Id)
Else
Console.WriteLine("Exception: {0}", inner.GetType().Name)
End If
Next
Finally
source.Dispose()
End Try
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:78,代码来源:Random 输出:
Task 1 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,502.47
Random number mean: 0.5003
Task 0 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,445.63
Random number mean: 0.5002
Task 2 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,556.04
Random number mean: 0.5003
Task 3 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,178.87
Random number mean: 0.5001
Task 4 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,819.17
Random number mean: 0.4999
Task 5 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,190.58
Random number mean: 0.5001
Task 6 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,720.21
Random number mean: 0.4999
Task 7 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,000.96
Random number mean: 0.4995
Task 8 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,499.33
Random number mean: 0.4997
Task 9 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 1,000,193.25
Random number mean: 0.5001
Task 10 finished execution.
Random numbers generated: 2,000,000
Sum of random numbers: 999,960.82
Random number mean: 0.5000
Total random numbers generated: 22,000,000
Total sum of all random numbers: 11,000,067.33
Random number mean: 0.5000
示例6: Example
Module Example
Public Sub Main()
Dim rnd As New Random()
Dim bytes(19) As Byte
rnd.NextBytes(bytes)
For ctr As Integer = 1 To bytes.Length
Console.Write("{0,3} ", bytes(ctr - 1))
If ctr Mod 10 = 0 Then Console.WriteLine()
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:11,代码来源:Random 输出:
141 48 189 66 134 212 211 71 161 56
181 166 220 133 9 252 222 57 62 62
示例7: Example
Module Example
Public Sub Main()
Dim rnd As New Random()
For ctr As Integer = 0 To 9
Console.Write("{0,3} ", rnd.Next(-10, 11))
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:8,代码来源:Random 输出:
2 9 -3 2 4 -7 -3 -8 -8 5
示例8: Example
Module Example
Public Sub Main()
Dim rnd As New Random()
For ctr As Integer = 0 To 9
Console.Write("{0,-19:R} ", rnd.NextDouble())
If (ctr + 1) Mod 3 = 0 Then Console.WriteLine()
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:9,代码来源:Random 输出:
0.7911680553998649 0.0903414949264105 0.79776258291572455
0.615568345233597 0.652644504165577 0.84023809378977776
0.099662564741290441 0.91341467383942321 0.96018602045261581
0.74772306473354022
示例9: Example
' 导入命名空间
Imports System.Threading
Module Example
Public Sub Main()
Console.WriteLine("Instantiating two random number generators...")
Dim rnd1 As New Random()
Thread.Sleep(2000)
Dim rnd2 As New Random()
Console.WriteLine()
Console.WriteLine("The first random number generator:")
For ctr As Integer = 1 To 10
Console.WriteLine(" {0}", rnd1.Next())
Next
Console.WriteLine()
Console.WriteLine("The second random number generator:")
For ctr As Integer = 1 To 10
Console.WriteLine(" {0}", rnd2.Next())
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:23,代码来源:Random 输出:
Instantiating two random number generators...
The first random number generator:
643164361
1606571630
1725607587
2138048432
496874898
1969147632
2034533749
1840964542
412380298
47518930
The second random number generator:
1251659083
1514185439
1465798544
517841554
1821920222
195154223
1538948391
1548375095
546062716
897797880
示例10: Example
Module Example
Public Sub Main()
Dim rnd As New Random()
For ctr As Integer = 1 To 15
Console.Write("{0,3} ", rnd.Next(-10, 11))
If ctr Mod 5 = 0 Then Console.WriteLine()
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:9,代码来源:Random 输出:
-2 -5 -1 -2 10
-3 6 -4 -8 3
-7 10 5 -2 4
示例11: Example
Module Example
Public Sub Main()
Dim rnd As New Random()
For ctr As Integer = 1 To 50
Console.Write("{0,3} ", rnd.Next(1000, 10000))
If ctr Mod 10 = 0 Then Console.WriteLine()
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:9,代码来源:Random 输出:
9570 8979 5770 1606 3818 4735 8495 7196 7070 2313
5279 6577 5104 5734 4227 3373 7376 6007 8193 5540
7558 3934 3819 7392 1113 7191 6947 4963 9179 7907
3391 6667 7269 1838 7317 1981 5154 7377 3297 5320
9869 8694 2684 4949 2999 3019 2357 5211 9604 2593
示例12: Example
Module Example
Public Sub Main()
Dim rnd As New Random()
For ctr As Integer = 1 To 10
Console.WriteLine(rnd.NextDouble() - 1)
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:8,代码来源:Random 输出:
-0.930412760437658
-0.164699016215605
-0.9851692803135
-0.43468508843085
-0.177202483255976
-0.776813320245972
-0.0713201854710096
-0.0912875561468711
-0.540621722368813
-0.232211863730201
示例13: Example
Module Example
Public Sub Main()
Const ONE_TENTH As Long = 922337203685477581
Dim rnd As New Random()
Dim number As Long
Dim count(9) As Integer
' Generate 20 million integer values.
For ctr As Integer = 1 To 20000000
number = CLng(rnd.NextDouble() * Int64.MaxValue)
' Categorize random numbers.
count(CInt(number \ ONE_TENTH)) += 1
Next
' Display breakdown by range.
Console.WriteLine("{0,28} {1,32} {2,7}", "Range", "Count", "Pct.")
Console.WriteLine()
For ctr As Integer = 0 To 9
Console.WriteLine("{0,25:N0}-{1,25:N0} {2,8:N0} {3,7:P2}", ctr * ONE_TENTH,
If(ctr < 9, ctr * ONE_TENTH + ONE_TENTH - 1, Int64.MaxValue),
count(ctr), count(ctr)/20000000)
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:24,代码来源:Random 输出:
Range Count Pct.
0- 922,337,203,685,477,580 1,996,148 9.98 %
922,337,203,685,477,581-1,844,674,407,370,955,161 2,000,293 10.00 %
1,844,674,407,370,955,162-2,767,011,611,056,432,742 2,000,094 10.00 %
2,767,011,611,056,432,743-3,689,348,814,741,910,323 2,000,159 10.00 %
3,689,348,814,741,910,324-4,611,686,018,427,387,904 1,999,552 10.00 %
4,611,686,018,427,387,905-5,534,023,222,112,865,485 1,998,248 9.99 %
5,534,023,222,112,865,486-6,456,360,425,798,343,066 2,000,696 10.00 %
6,456,360,425,798,343,067-7,378,697,629,483,820,647 2,001,637 10.01 %
7,378,697,629,483,820,648-8,301,034,833,169,298,228 2,002,870 10.01 %
8,301,034,833,169,298,229-9,223,372,036,854,775,807 2,000,303 10.00 %
示例14: Example
Module Example
Public Sub Main()
Dim rnd As New Random()
Dim lowerBound As Integer = 10
Dim upperBound As Integer = 11
Dim range(9) As Integer
For ctr As Integer = 1 To 1000000
Dim value As Double = rnd.NextDouble() * (upperBound - lowerBound) + lowerBound
range(CInt(Math.Truncate((value - lowerBound) * 10))) += 1
Next
For ctr As Integer = 0 To 9
Dim lowerRange As Double = 10 + ctr * .1
Console.WriteLine("{0:N1} to {1:N1}: {2,8:N0} ({3,7:P2})",
lowerRange, lowerRange + .1, range(ctr),
range(ctr) / 1000000.0)
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:19,代码来源:Random 输出:
10.0 to 10.1: 99,929 ( 9.99 %)
10.1 to 10.2: 100,189 (10.02 %)
10.2 to 10.3: 99,384 ( 9.94 %)
10.3 to 10.4: 100,240 (10.02 %)
10.4 to 10.5: 99,397 ( 9.94 %)
10.5 to 10.6: 100,580 (10.06 %)
10.6 to 10.7: 100,293 (10.03 %)
10.7 to 10.8: 100,135 (10.01 %)
10.8 to 10.9: 99,905 ( 9.99 %)
10.9 to 11.0: 99,948 ( 9.99 %)
示例15: Example
Module Example
Public Sub Main()
' Instantiate the Boolean generator.
Dim boolGen As New BooleanGenerator()
Dim totalTrue, totalFalse As Integer
' Generate 1,0000 random Booleans, and keep a running total.
For ctr As Integer = 0 To 9999999
Dim value As Boolean = boolGen.NextBoolean()
If value Then
totalTrue += 1
Else
totalFalse += 1
End If
Next
Console.WriteLine("Number of true values: {0,7:N0} ({1:P3})",
totalTrue,
totalTrue/(totalTrue + totalFalse))
Console.WriteLine("Number of false values: {0,7:N0} ({1:P3})",
totalFalse,
totalFalse/(totalTrue + totalFalse))
End Sub
End Module
Public Class BooleanGenerator
Dim rnd As Random
Public Sub New()
rnd = New Random()
End Sub
Public Function NextBoolean() As Boolean
Return Convert.ToBoolean(rnd.Next(0, 2))
End Function
End Class
开发者ID:VB.NET开发者,项目名称:System,代码行数:35,代码来源:Random 输出:
Number of true values: 500,004 (50.000 %)
Number of false values: 499,996 (50.000 %)
示例16: Example
Module Example
Public Sub Main()
Dim totalTrue, totalFalse As Integer
' Generate 1,0000 random Booleans, and keep a running total.
For ctr As Integer = 0 To 9999999
Dim value As Boolean = NextBoolean()
If value Then
totalTrue += 1
Else
totalFalse += 1
End If
Next
Console.WriteLine("Number of true values: {0,7:N0} ({1:P3})",
totalTrue,
totalTrue/(totalTrue + totalFalse))
Console.WriteLine("Number of false values: {0,7:N0} ({1:P3})",
totalFalse,
totalFalse/(totalTrue + totalFalse))
End Sub
Public Function NextBoolean() As Boolean
Static rnd As New Random()
Return Convert.ToBoolean(rnd.Next(0, 2))
End Function
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:26,代码来源:Random 输出:
Number of true values: 499,777 (49.978 %)
Number of false values: 500,223 (50.022 %)
示例17: Example
Module Example
Public Sub Main()
Const ONE_TENTH As Long = 922337203685477581
Dim rnd As New Random()
Dim number As Long
Dim count(9) As Integer
' Generate 20 million long integers.
For ctr As Integer = 1 To 20000000
number = CLng(rnd.NextDouble() * Int64.MaxValue)
' Categorize random numbers.
count(CInt(number \ ONE_TENTH)) += 1
Next
' Display breakdown by range.
Console.WriteLine("{0,28} {1,32} {2,7}", "Range", "Count", "Pct.")
Console.WriteLine()
For ctr As Integer = 0 To 9
Console.WriteLine("{0,25:N0}-{1,25:N0} {2,8:N0} {3,7:P2}", ctr * ONE_TENTH,
If(ctr < 9, ctr * ONE_TENTH + ONE_TENTH - 1, Int64.MaxValue),
count(ctr), count(ctr)/20000000)
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:24,代码来源:Random 输出:
Range Count Pct.
0- 922,337,203,685,477,580 1,996,148 9.98 %
922,337,203,685,477,581-1,844,674,407,370,955,161 2,000,293 10.00 %
1,844,674,407,370,955,162-2,767,011,611,056,432,742 2,000,094 10.00 %
2,767,011,611,056,432,743-3,689,348,814,741,910,323 2,000,159 10.00 %
3,689,348,814,741,910,324-4,611,686,018,427,387,904 1,999,552 10.00 %
4,611,686,018,427,387,905-5,534,023,222,112,865,485 1,998,248 9.99 %
5,534,023,222,112,865,486-6,456,360,425,798,343,066 2,000,696 10.00 %
6,456,360,425,798,343,067-7,378,697,629,483,820,647 2,001,637 10.01 %
7,378,697,629,483,820,648-8,301,034,833,169,298,228 2,002,870 10.01 %
8,301,034,833,169,298,229-9,223,372,036,854,775,807 2,000,303 10.00 %
示例18: Example
Module Example
Public Sub Main()
Dim rnd As New Random2()
Dim bytes(9999) As Byte
Dim total(100) As Integer
rnd.NextBytes(bytes, 0, 101)
' Calculate how many of each value we have.
For Each value In bytes
total(value) += 1
Next
' Display the results.
For ctr As Integer = 0 To total.Length - 1
Console.Write("{0,3}: {1,-3} ", ctr, total(ctr))
If (ctr + 1) Mod 5 = 0 Then Console.WriteLine()
Next
End Sub
End Module
Public Class Random2 : Inherits Random
Public Sub New()
MyBase.New()
End Sub
Public Sub New(seed As Integer)
MyBase.New(seed)
End Sub
Public Overloads Sub NextBytes(bytes() As Byte,
minValue As Byte, maxValue As Byte)
For ctr As Integer = bytes.GetLowerbound(0) To bytes.GetUpperBound(0)
bytes(ctr) = CByte(MyBase.Next(minValue, maxValue))
Next
End Sub
End Class
开发者ID:VB.NET开发者,项目名称:System,代码行数:36,代码来源:Random 输出:
0: 115 1: 119 2: 92 3: 98 4: 92
5: 102 6: 103 7: 84 8: 93 9: 116
10: 91 11: 98 12: 106 13: 91 14: 92
15: 101 16: 100 17: 96 18: 97 19: 100
20: 101 21: 106 22: 112 23: 82 24: 85
25: 102 26: 107 27: 98 28: 106 29: 102
30: 109 31: 108 32: 94 33: 101 34: 107
35: 101 36: 86 37: 100 38: 101 39: 102
40: 113 41: 95 42: 96 43: 89 44: 99
45: 81 46: 89 47: 105 48: 100 49: 85
50: 103 51: 103 52: 93 53: 89 54: 91
55: 97 56: 105 57: 97 58: 110 59: 86
60: 116 61: 94 62: 117 63: 98 64: 110
65: 93 66: 102 67: 100 68: 105 69: 83
70: 81 71: 97 72: 85 73: 70 74: 98
75: 100 76: 110 77: 114 78: 83 79: 90
80: 96 81: 112 82: 102 83: 102 84: 99
85: 81 86: 100 87: 93 88: 99 89: 118
90: 95 91: 124 92: 108 93: 96 94: 104
95: 106 96: 99 97: 99 98: 92 99: 99
100: 108
示例19: Example
Module Example
Public Sub Main()
Dim cities() As String = { "Atlanta", "Boston", "Chicago", "Detroit",
"Fort Wayne", "Greensboro", "Honolulu", "Indianapolis",
"Jersey City", "Kansas City", "Los Angeles",
"Milwaukee", "New York", "Omaha", "Philadelphia",
"Raleigh", "San Francisco", "Tulsa", "Washington" }
Dim rnd As New Random()
Dim index As Integer = rnd.Next(0, cities.Length)
Console.WriteLine("Today's city of the day: {0}",
cities(index))
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:13,代码来源:Random 输出:
Today's city of the day: Honolulu
示例20: Card
' A class that represents an individual card in a playing deck.
Public Class Card
Public Suit As Suit
Public FaceValue As FaceValue
Public Overrides Function ToString() As String
Return String.Format("{0:F} of {1:F}", Me.FaceValue, Me.Suit)
End Function
End Class
Public Enum Suit As Integer
Hearts = 0
Diamonds = 1
Spades = 2
Clubs = 3
End Enum
Public Enum FaceValue As Integer
Ace = 1
Two = 2
Three = 3
Four = 4
Five = 5
Six = 6
Seven = 7
Eight = 8
Nine = 9
Ten = 10
Jack = 11
Queen = 12
King = 13
End Enum
Public Class Dealer
Dim rnd As Random
' A deck of cards, without Jokers.
Dim deck(51) As Card
' Parallel array for sorting cards.
Dim order(51) As Double
' A pointer to the next card to deal.
Dim ptr As Integer = 0
' A flag to indicate the deck is used.
Dim mustReshuffle As Boolean
Public Sub New()
rnd = New Random()
' Initialize the deck.
Dim deckCtr As Integer = 0
For Each Suit In [Enum].GetValues(GetType(Suit))
For Each faceValue In [Enum].GetValues(GetType(FaceValue))
Dim card As New Card()
card.Suit = CType(Suit, Suit)
card.FaceValue = CType(faceValue, FaceValue)
deck(deckCtr) = card
deckCtr += 1
Next
Next
For ctr As Integer = 0 To order.Length - 1
order(ctr) = rnd.NextDouble()
Next
Array.Sort(order, deck)
End Sub
Public Function Deal(numberToDeal As Integer) As Card()
If mustReshuffle Then
Console.WriteLine("There are no cards left in the deck")
Return Nothing
End If
Dim cardsDealt(numberToDeal - 1) As Card
For ctr As Integer = 0 To numberToDeal - 1
cardsDealt(ctr) = deck(ptr)
ptr += 1
If ptr = deck.Length Then
mustReshuffle = True
End If
If mustReshuffle And ctr < numberToDeal - 1
Console.WriteLine("Can only deal the {0} cards remaining on the deck.",
ctr + 1)
Return cardsDealt
End If
Next
Return cardsDealt
End Function
End Class
Public Module Example
Public Sub Main()
Dim dealer As New Dealer()
ShowCards(dealer.Deal(20))
End Sub
Private Sub ShowCards(cards() As Card)
For Each card In cards
If card IsNot Nothing Then _
Console.WriteLine("{0} of {1}", card.FaceValue, card.Suit)
Next
End Sub
End Module
开发者ID:VB.NET开发者,项目名称:System,代码行数:99,代码来源:Random 输出:
Six of Diamonds
King of Clubs
Eight of Clubs
Seven of Clubs
Queen of Clubs
King of Hearts
Three of Spades
Ace of Clubs
Four of Hearts
Three of Diamonds
Nine of Diamonds
Two of Hearts
Ace of Hearts
Three of Hearts
Four of Spades
Eight of Hearts
Queen of Diamonds
Two of Clubs
Four of Diamonds
Jack of Hearts
注:本文中的System.Random类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论