Random.NextDouble Metoda

Definicja

Zwraca losową liczbę zmiennoprzecinkową o wartości większej lub równej 0,0 i mniejszą niż 1,0.Returns a random floating-point number that is greater than or equal to 0.0, and less than 1.0.

``````public:
virtual double NextDouble();``````
``public virtual double NextDouble ();``
``````abstract member NextDouble : unit -> double
override this.NextDouble : unit -> double``````
``Public Overridable Function NextDouble () As Double``

Zwraca

Liczba zmiennoprzecinkowa o podwójnej precyzji, która jest większa lub równa 0,0, i mniejsza niż 1,0.A double-precision floating point number that is greater than or equal to 0.0, and less than 1.0.

W poniższym przykładzie zastosowano metodę NextDouble, aby wygenerować sekwencje losowego podwajania.The following example uses the NextDouble method to generate sequences of random doubles.

``````// Example of the Random class constructors and Random::NextDouble( )
// method.
using namespace System;

// Generate random numbers from the specified Random object.
void RunIntNDoubleRandoms( Random^ randObj )
{

// Generate the first six random integers.
for ( int j = 0; j < 6; j++ )
Console::Write( " {0,10} ", randObj->Next() );
Console::WriteLine();

// Generate the first six random doubles.
for ( int j = 0; j < 6; j++ )
Console::Write( " {0:F8} ", randObj->NextDouble() );
Console::WriteLine();
}

// Create a Random object with the specified seed.
void FixedSeedRandoms( int seed )
{
Console::WriteLine( "\nRandom numbers from a Random object with seed = {0}:", seed );
Random^ fixRand = gcnew Random( seed );
RunIntNDoubleRandoms( fixRand );
}

// Create a random object with a timer-generated seed.
void AutoSeedRandoms()
{

// Wait to allow the timer to advance.
Console::WriteLine( "\nRandom numbers from a Random object "
"with an auto-generated seed:" );
Random^ autoRand = gcnew Random;
RunIntNDoubleRandoms( autoRand );
}

int main()
{
Console::WriteLine( "This example of the Random class constructors and Random"
"::NextDouble( ) \ngenerates the following output.\n" );
Console::WriteLine( "Create Random objects, and then generate and "
"display six integers and \nsix doubles from each." );
FixedSeedRandoms( 123 );
FixedSeedRandoms( 123 );
FixedSeedRandoms( 456 );
FixedSeedRandoms( 456 );
AutoSeedRandoms();
AutoSeedRandoms();
AutoSeedRandoms();
}

/*
This example of the Random class constructors and Random::NextDouble( )
generates the following output.

Create Random objects, and then generate and display six integers and
six doubles from each.

Random numbers from a Random object with seed = 123:
2114319875  1949518561  1596751841  1742987178  1586516133   103755708
0.01700087  0.14935942  0.19470390  0.63008947  0.90976122  0.49519146

Random numbers from a Random object with seed = 123:
2114319875  1949518561  1596751841  1742987178  1586516133   103755708
0.01700087  0.14935942  0.19470390  0.63008947  0.90976122  0.49519146

Random numbers from a Random object with seed = 456:
2044805024  1323311594  1087799997  1907260840   179380355   120870348
0.21988117  0.21026556  0.39236514  0.42420498  0.24102703  0.47310170

Random numbers from a Random object with seed = 456:
2044805024  1323311594  1087799997  1907260840   179380355   120870348
0.21988117  0.21026556  0.39236514  0.42420498  0.24102703  0.47310170

Random numbers from a Random object with an auto-generated seed:
1624372556  1894939458   302472229   588108304    23919954  1085111949
0.14595512  0.30162298  0.92267372  0.55707657  0.25430079  0.74143239

Random numbers from a Random object with an auto-generated seed:
2105952511  1753605347   280739490   876793040  1129567796   524571616
0.62652210  0.31846701  0.15984073  0.24458755  0.62160607  0.54857684

Random numbers from a Random object with an auto-generated seed:
440048819  1612271236   259006751  1165477776    87731991  2111514930
0.10708907  0.33531104  0.39700773  0.93209853  0.98891135  0.35572129
*/
``````
``````// Example of the Random class constructors and Random.NextDouble( )
// method.
using System;

public class RandomObjectDemo
{
// Generate random numbers from the specified Random object.
static void RunIntNDoubleRandoms( Random randObj )
{
// Generate the first six random integers.
for( int j = 0; j < 6; j++ )
Console.Write( " {0,10} ", randObj.Next( ) );
Console.WriteLine( );

// Generate the first six random doubles.
for( int j = 0; j < 6; j++ )
Console.Write( " {0:F8} ", randObj.NextDouble( ) );
Console.WriteLine( );
}

// Create a Random object with the specified seed.
static void FixedSeedRandoms( int seed )
{
Console.WriteLine(
"\nRandom numbers from a Random object with " +
"seed = {0}:", seed );
Random fixRand = new Random( seed );

RunIntNDoubleRandoms( fixRand );
}

// Create a random object with a timer-generated seed.
static void AutoSeedRandoms( )
{
// Wait to allow the timer to advance.

Console.WriteLine(
"\nRandom numbers from a Random object " +
"with an auto-generated seed:" );
Random autoRand = new Random( );

RunIntNDoubleRandoms( autoRand );
}

static void Main( )
{
Console.WriteLine(
"This example of the Random class constructors and " +
"Random.NextDouble( ) \n" +
"generates the following output.\n" );
Console.WriteLine(
"Create Random objects, and then generate and " +
"display six integers and \nsix doubles from each.");

FixedSeedRandoms( 123 );
FixedSeedRandoms( 123 );

FixedSeedRandoms( 456 );
FixedSeedRandoms( 456 );

AutoSeedRandoms( );
AutoSeedRandoms( );
AutoSeedRandoms( );
}
}

/*
This example of the Random class constructors and Random.NextDouble( )
generates the following output.

Create Random objects, and then generate and display six integers and
six doubles from each.

Random numbers from a Random object with seed = 123:
2114319875  1949518561  1596751841  1742987178  1586516133   103755708
0.01700087  0.14935942  0.19470390  0.63008947  0.90976122  0.49519146

Random numbers from a Random object with seed = 123:
2114319875  1949518561  1596751841  1742987178  1586516133   103755708
0.01700087  0.14935942  0.19470390  0.63008947  0.90976122  0.49519146

Random numbers from a Random object with seed = 456:
2044805024  1323311594  1087799997  1907260840   179380355   120870348
0.21988117  0.21026556  0.39236514  0.42420498  0.24102703  0.47310170

Random numbers from a Random object with seed = 456:
2044805024  1323311594  1087799997  1907260840   179380355   120870348
0.21988117  0.21026556  0.39236514  0.42420498  0.24102703  0.47310170

Random numbers from a Random object with an auto-generated seed:
380213349   127379247  1969091178  1983029819  1963098450  1648433124
0.08824121  0.41249688  0.36445811  0.05637512  0.62702451  0.49595560

Random numbers from a Random object with an auto-generated seed:
861793304  2133528783  1947358439   124230908   921262645  1087892791
0.56880819  0.42934091  0.60162512  0.74388610  0.99432979  0.30310005

Random numbers from a Random object with an auto-generated seed:
1343373259  1992194672  1925625700   412915644  2026910487   527352458
0.04937517  0.44618494  0.83879212  0.43139707  0.36163507  0.11024451
*/
``````
``````' Example of the Random class constructors and Random.NextDouble( )
' method.

Module RandomObjectDemo

' Generate random numbers from the specified Random object.
Sub RunIntNDoubleRandoms( randObj As Random )

' Generate the first six random integers.
Dim j As Integer
For j = 0 To 5
Console.Write( " {0,10} ", randObj.Next( ) )
Next j
Console.WriteLine( )

' Generate the first six random doubles.
For j = 0 To 5
Console.Write( " {0:F8} ", randObj.NextDouble( ) )
Next j
Console.WriteLine( )
End Sub

' Create a Random object with the specified seed.
Sub FixedSeedRandoms( seed As Integer )

Console.WriteLine( vbCrLf & _
"Random numbers from a Random object with " & _
"seed = {0}:", seed )
Dim fixRand As New Random( seed )

RunIntNDoubleRandoms( fixRand )
End Sub

' Create a random object with a timer-generated seed.
Sub AutoSeedRandoms( )

' Wait to allow the timer to advance.

Console.WriteLine( vbCrLf & _
"Random numbers from a Random object " & _
"with an auto-generated seed:" )
Dim autoRand As New Random( )

RunIntNDoubleRandoms( autoRand )
End Sub

Sub Main( )
Console.WriteLine( _
"This example of the Random class constructors " & _
"and Random.NextDouble( ) " & vbCrLf & _
"generates the following output." & vbCrLf )
Console.WriteLine( "Create Random " & _
"objects, and then generate and display six " & _
"integers and " & vbCrLf & "six doubles from each." )

FixedSeedRandoms( 123 )
FixedSeedRandoms( 123 )

FixedSeedRandoms( 456 )
FixedSeedRandoms( 456 )

AutoSeedRandoms( )
AutoSeedRandoms( )
AutoSeedRandoms( )
End Sub
End Module

' This example of the Random class constructors and Random.NextDouble( )
' generates the following output.
'
' Create Random objects, and then generate and display six integers and
' six doubles from each.
'
' Random numbers from a Random object with seed = 123:
'  2114319875  1949518561  1596751841  1742987178  1586516133   103755708
'  0.01700087  0.14935942  0.19470390  0.63008947  0.90976122  0.49519146
'
' Random numbers from a Random object with seed = 123:
'  2114319875  1949518561  1596751841  1742987178  1586516133   103755708
'  0.01700087  0.14935942  0.19470390  0.63008947  0.90976122  0.49519146
'
' Random numbers from a Random object with seed = 456:
'  2044805024  1323311594  1087799997  1907260840   179380355   120870348
'  0.21988117  0.21026556  0.39236514  0.42420498  0.24102703  0.47310170
'
' Random numbers from a Random object with seed = 456:
'  2044805024  1323311594  1087799997  1907260840   179380355   120870348
'  0.21988117  0.21026556  0.39236514  0.42420498  0.24102703  0.47310170
'
' Random numbers from a Random object with an auto-generated seed:
'  1920831619  1346865774  2006582766  1968819760   332463652   110770792
'  0.71326689  0.50383335  0.50446082  0.66312569  0.94517193  0.58059287
'
' Random numbers from a Random object with an auto-generated seed:
'   254927927  1205531663  1984850027   110020849  1438111494  1697714106
'  0.19383387  0.52067738  0.74162783  0.35063667  0.31247720  0.38773733
'
' Random numbers from a Random object with an auto-generated seed:
'   736507882  1064197552  1963117288   398705585   396275689  1137173773
'  0.67440084  0.53752140  0.97879483  0.03814764  0.67978248  0.19488178
``````

Poniższy przykład wywołuje metodę NextDouble, aby generować liczby losowe 100 i wyświetla ich rozkład częstotliwości.The following example calls the NextDouble method to generate 100 random numbers and displays their frequency distribution.

``````int[] frequency = new int[10];
double number;
Random rnd = new Random();

for (int ctr = 0; ctr <= 99; ctr++) {
number = rnd.NextDouble();
frequency[(int) Math.Floor(number*10)] ++;
}
Console.WriteLine("Distribution of Random Numbers:");
for (int ctr = frequency.GetLowerBound(0); ctr <= frequency.GetUpperBound(0); ctr++)
Console.WriteLine("0.{0}0-0.{0}9       {1}", ctr, frequency[ctr]);

// The following example displays output similar to the following:
//       Distribution of Random Numbers:
//       0.00-0.09       16
//       0.10-0.19       8
//       0.20-0.29       8
//       0.30-0.39       11
//       0.40-0.49       9
//       0.50-0.59       6
//       0.60-0.69       13
//       0.70-0.79       6
//       0.80-0.89       9
//       0.90-0.99       14
``````
``````Module Example
Public Sub Main()
Dim frequency(9) As Integer
Dim number As Double
Dim rnd As New Random()

For ctr As Integer = 0 To 99
number = rnd.NextDouble()
frequency(CInt(Math.Floor(number*10))) += 1
Next
Console.WriteLine("Distribution of Random Numbers:")
For ctr As Integer = frequency.GetLowerBound(0) To frequency.GetUpperBound(0)
Console.WriteLine("0.{0}0-0.{0}9       {1}", ctr, frequency(ctr))
Next
End Sub
End Module
' The following example displays output similar to the following:
'       Distribution of Random Numbers:
'       0.00-0.09       16
'       0.10-0.19       8
'       0.20-0.29       8
'       0.30-0.39       11
'       0.40-0.49       9
'       0.50-0.59       6
'       0.60-0.69       13
'       0.70-0.79       6
'       0.80-0.89       9
'       0.90-0.99       14
``````

Uwagi

Rzeczywista Górna granica liczby losowej zwracanej przez tę metodę to 0.99999999999999978.The actual upper bound of the random number returned by this method is 0.99999999999999978.

Aby pobrać losowe wartości zmiennoprzecinkowe w zakresie innym niż 0,0 i 1,0, zobacz sekcję "Pobieranie wartości zmiennoprzecinkowych w określonym zakresie" w temacie Random klasy.To retrieve random floating-point values within a range other than 0.0 and 1.0, see the "Retrieve floating-point values in a specified range" section of the Random class topic.

Ta metoda jest publiczną wersją metody chronionej Sample.This method is the public version of the protected method, Sample.