randomとは? わかりやすく解説

ランダム【random】

[名・形動

無作為任意であること。また、そのさま。「—に抽出する」→アトランダム

ランダムサンプリング」の略。


Random クラス

擬似乱数ジェネレータ表します。擬似乱数ジェネレータは、乱数についての統計的要件満たす数値系列生成するデバイスです。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説

擬似乱数は、有限個の数値の中から等し確率選び出されます。この数字選出するために使用する演算アルゴリズムには限界あるため選び出された数字は完全な乱数ではありませんが、実質的には乱数として十分使用できますRandom クラス現在の実装は、Donald E. Knuth乱数ジェネレータ減算アルゴリズム基づいています。詳細については、D. E. Knuth 著『The Art of Computer Programming, volume 2: Seminumerical Algorithms』(第 2 版、1981 年 Addision-Wesley, Reading, MA 出版) を参照してください

乱数生成には、初期値としてシード値を使用します。同じシード繰り返し使用すると、生成される乱数系列も同じになります異な乱数系列生成する 1 つの方法は、シード値を時間によって決定することです。これにより、Random新しインスタンスごとに異な乱数系列生成できます

パフォーマンスを向上するには、1 つ乱数生成するために繰り返し新しRandom作成するのではなく1 つRandom作成して何回も使用し、多く乱数生成するようにします。

ランダム パスワード作成適した暗号として安全な乱数生成するには、たとえば、System.Security.Cryptography.RNGCryptoServiceProvider などの System.Security.Cryptography.RandomNumberGenerator から派生したクラス使用します。

使用例使用例

クラス コンストラクタさまざまなオーバーロード使用して Random オブジェクト作成し、それらのオブジェクトから整数および倍精度浮動小数点数ランダムシーケンス生成するコード例を次に示します

' Example of the Random class constructors and Random.NextDouble( )
 
' method.
Imports System
Imports System.Threading
Imports Microsoft.VisualBasic

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.
        Thread.Sleep( 1 )
            
        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
// Example of the Random class constructors and Random.NextDouble( )
 
// method.
using System;
using System.Threading;

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.
        Thread.Sleep( 1 );

        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.
using namespace System;
using namespace System::Threading;

// 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.
   Thread::Sleep( 1 );
   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
*/
継承階層継承階層
System.Object
  System.Random
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Random コンストラクタ ()

時間に応じて決定される既定シード値を使用し、Random クラス新しインスタンス初期化します。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

解説解説

生成される数値分布一様で、どの数字も同じ確率で返される可能性あります

既定シード値は、システム時計から導かれます。ただし、パフォーマンスの高いシステム乱数生成する場合システム時計の値を使用すると、期待した動作が得られない可能性あります詳細については、Random コンストラクタの解説を参照してください

使用例使用例

パラメータなしのクラス コンストラクタ使用して Random オブジェクト作成し、整数および倍精度浮動小数点数ランダムシーケンス生成するコード例を次に示しますパラメータのないコンストラクタ使用して Random オブジェクト再度生成すると、異なシーケンス生成されることがわかります

' Example of the Random class constructors and Random.NextDouble( )
 
' method.
Imports System
Imports System.Threading
Imports Microsoft.VisualBasic

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.
        Thread.Sleep( 1 )
            
        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
// Example of the Random class constructors and Random.NextDouble( )
 
// method.
using System;
using System.Threading;

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.
        Thread.Sleep( 1 );

        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.
using namespace System;
using namespace System::Threading;

// 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.
   Thread::Sleep( 1 );
   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
*/
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Random コンストラクタ (Int32)

指定したシード値を使用して Random クラス新しインスタンス初期化します。

名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文構文

例外例外
解説解説

アプリケーション複数異なシーケンス必要な場合は、異なシード値を使用して、このコンストラクタ複数呼び出します。一意シード値を生成する方法1 つに、シード値を時刻依存させる方法あります。たとえば、シード値の生成システム時計によって行います。

しかし、アプリケーション高速コンピュータ上で実行された場合には、このコンストラクタ複数呼び出される間にシステム時計の値が変化せず、Random複数異なインスタンスに対して同じシード値が生成される可能性ありますこのような場合には、呼び出しのたびにシード値を変えるためのアルゴリズム適用します。

たとえば、次に示す C# の式では、ビットごとの補数演算使用して、システム時刻の値が変化ない場合でも 2 つ異なシード値を生成します。

Random rdm1 = new Random(unchecked((int)DateTime.Now.Ticks));
Random rdm2 = new Random(~unchecked((int)DateTime.Now.Ticks));
使用例使用例

シード パラメータ受け取クラス コンストラクタ使用して Random オブジェクト作成し、整数および倍精度浮動小数点数ランダムシーケンス生成するコード例を次に示しますシード パラメータ受け取コンストラクタ使用して Random オブジェクト再度生成すると、同じシーケンス生成されることがわかります

' Example of the Random class constructors and Random.NextDouble( )
 
' method.
Imports System
Imports System.Threading
Imports Microsoft.VisualBasic

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.
        Thread.Sleep( 1 )
            
        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
// Example of the Random class constructors and Random.NextDouble( )
 
// method.
using System;
using System.Threading;

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.
        Thread.Sleep( 1 );

        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.
using namespace System;
using namespace System::Threading;

// 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.
   Thread::Sleep( 1 );
   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
*/
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照

Random コンストラクタ

Random クラス新しインスタンス初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
Random () 時間に応じて決定される既定シード値を使用し、Random クラス新しインスタンス初期化します。

.NET Compact Framework によってサポートされています。

Random (Int32) 指定したシード値を使用して Random クラス新しインスタンス初期化します。

.NET Compact Framework によってサポートされています。

参照参照

Random メソッド


パブリック メソッドパブリック メソッド

( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Equals  オーバーロードされます。 2 つObject インスタンス等しかどうか判断します。 ( Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 ( Object から継承されます。)
パブリック メソッド Next オーバーロードされます。 乱数返します。
パブリック メソッド NextBytes 指定たバイト配列要素乱数格納します。
パブリック メソッド NextDouble 0.0 と 1.0 の間の乱数返します。
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 ( Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 ( Object から継承されます。)
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド Finalize  Objectガベージ コレクションにより収集される前に、その Objectリソースを解放し、その他のクリーンアップ操作実行できるようにします。 ( Object から継承されます。)
プロテクト メソッド MemberwiseClone  現在の Object簡易コピー作成します。 ( Object から継承されます。)
プロテクト メソッド Sample 0.0 と 1.0 の間の乱数返します。
参照参照

Random メンバ

擬似乱数ジェネレータ表します。擬似乱数ジェネレータは、乱数についての統計的要件満たす数値系列生成するデバイスです。

Random データ型公開されるメンバを以下の表に示します


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド Random オーバーロードされます。 Random クラス新しインスタンス初期化します。
パブリック メソッドパブリック メソッド
( プロテクト メソッド参照)
  名前 説明
パブリック メソッド Equals  オーバーロードされます。 2 つObject インスタンス等しかどうか判断します。 (Object から継承されます。)
パブリック メソッド GetHashCode  特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。)
パブリック メソッド GetType  現在のインスタンスType取得します。 (Object から継承されます。)
パブリック メソッド Next オーバーロードされます。 乱数返します。
パブリック メソッド NextBytes 指定たバイト配列要素乱数格納します。
パブリック メソッド NextDouble 0.0 と 1.0 の間の乱数返します。
パブリック メソッド ReferenceEquals  指定した複数Object インスタンス同一かどうか判断します。 (Object から継承されます。)
パブリック メソッド ToString  現在の Object を表す String返します。 (Object から継承されます。)
プロテクト メソッドプロテクト メソッド
  名前 説明
プロテクト メソッド Finalize  Objectガベージ コレクションにより収集される前に、その Objectリソースを解放し、その他のクリーンアップ操作実行できるようにします。 (Object から継承されます。)
プロテクト メソッド MemberwiseClone  現在の Object簡易コピー作成します。 (Object から継承されます。)
プロテクト メソッド Sample 0.0 と 1.0 の間の乱数返します。
参照参照

無作為に

要素偶然的過程によって選択された標本は、無作為標本 1ないし確率標本 1呼ばれる標本抽出単位の完全なリスト利用可能な場合、これは抽出枠 3呼ばれる単純無作為抽出 4では、ある割合抽出単位抽出枠から無作為に 2選択される。この割合抽出率 5呼ばれる系統抽出標本 6抽出単位連続的番号付けられているから系統的に抽出される 7標本はn番目、(n+s)番目、(n+2s)番目、・・・といった単位をとることによって選択される。この場合nはsより大きくなく、無作為に選択される。集落抽出法 8では、母集団要素個別抽出されるのではなく集落 9呼ばれる集団単位抽出される。


ランダム

(random から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/12/23 03:52 UTC 版)

ランダム英語: random)とは、事象の発生に法則性(規則性)がなく、予測が不可能英語版な状態である[注釈 1]ランダムネス(英語: randomness)、無作為性(むさくいせい)ともいう。


注釈

  1. ^ オックスフォード英語辞典』では"random"を"Having no definite aim or purpose; not sent or guided in a particular direction; made, done, occurring, etc., without method or conscious choice; haphazard."(明確な目的や目的がない。特定の方向に送信されたり誘導されたりすることがない。方法や意識的な選択なしに、作成、完了、発生すること。行き当たりばったり。)と定義している。
  2. ^ 直訳すると「ランダム変数」だが、日本語の術語では「確率変数」という。

出典

  1. ^ Third Workshop on Monte Carlo Methods, Jun Liu, Professor of Statistics, Harvard University
  2. ^ Handbook to life in ancient Rome by Lesley Adkins 1998 ISBN 0-19-512332-8 page 279
  3. ^ Religions of the ancient world by Sarah Iles Johnston 2004 ISBN 0-674-01517-7 page 370
  4. ^ Annotated readings in the history of statistics by Herbert Aron David, 2001 ISBN 0-387-98844-0 page 115. Note that the 1866 edition of Venn's book (on Google books) does not include this chapter.
  5. ^ Nature.com in Bell's aspect experiment: Nature
  6. ^ "Each nucleus decays spontaneously, at random, in accordance with the blind workings of chance." Q for Quantum, John Gribbin英語版
  7. ^ Longo, Giuseppe; Montévil, Maël; Kauffman, Stuart (2012-01-01). “No Entailing Laws, but Enablement in the Evolution of the Biosphere”. Proceedings of the 14th Annual Conference Companion on Genetic and Evolutionary Computation. GECCO '12 (New York, NY, USA: ACM): 1379–1392. doi:10.1145/2330784.2330946. ISBN 9781450311786. https://www.academia.edu/11720588/No_entailing_laws_but_enablement_in_the_evolution_of_the_biosphere. 
  8. ^ Longo, Giuseppe; Montévil, Maël (2013-10-01). “Extended criticality, phase spaces and enablement in biology”. Chaos, Solitons & Fractals. Emergent Critical Brain Dynamics 55: 64–79. doi:10.1016/j.chaos.2013.03.008. https://www.academia.edu/11720575/Extended_criticality_phase_spaces_and_enablement_in_biology. 
  9. ^ Breathnach, A. S. (1982). “A long-term hypopigmentary effect of thorium-X on freckled skin”. British Journal of Dermatology 106 (1): 19–25. doi:10.1111/j.1365-2133.1982.tb00897.x. PMID 7059501. "The distribution of freckles seems entirely random, and not associated with any other obviously punctuate anatomical or physiological feature of skin." 
  10. ^ Yongge Wang: Randomness and Complexity. PhD Thesis, 1996. http://webpages.uncc.edu/yonwang/papers/thesis.pdf
  11. ^ Are the digits of pi random? researcher may hold the key”. Lbl.gov (2001年7月23日). 2012年7月27日閲覧。
  12. ^ JIS Z 8101-1 : 1999 統計用語と記号 − 第1部:確率及び一般統計用語 2.65 ランダム化, 日本規格協会
  13. ^ Municipal Elections Act (Ontario, Canada) 1996, c. 32, Sched., s. 62 (3) : "If the recount indicates that two or more candidates who cannot both or all be declared elected to an office have received the same number of votes, the clerk shall choose the successful candidate or candidates by lot."
  14. ^ Terry Ritter, Randomness tests: a literature survey. ciphersbyritter.com
  15. ^ Pironio et.al, S.. “Random Numbers Certified by Bell's Theorem”. Nature. https://doi.org/10.1038/nature09008. 


「ランダム」の続きの解説一覧


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「random」の関連用語

randomのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



randomのページの著作権
Weblio 辞書情報提供元は参加元一覧にて確認できます。

  
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2022 Microsoft.All rights reserved.
コンテンツはAttribution-Share Alike 3.0 Unportedのライセンスで利用することができます。
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのランダム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2022 GRAS Group, Inc.RSS