當前位置: 首頁>>代碼示例>>C#>>正文


C# Random.Next方法代碼示例

本文整理匯總了C#中System.Random.Next方法的典型用法代碼示例。如果您正苦於以下問題:C# Random.Next方法的具體用法?C# Random.Next怎麽用?C# Random.Next使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Random的用法示例。


在下文中一共展示了Random.Next方法的8個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: Random

Random rnd = new Random();

Console.WriteLine("Generating 10 random numbers:");
                  
for (uint ctr = 1; ctr <= 10; ctr++)
   Console.WriteLine($"{rnd.Next(),15:N0}");
開發者ID:.NET開發者,項目名稱:System,代碼行數:6,代碼來源:Random.Next

輸出:

Generating 10 random numbers:                  
1,733,189,596
566,518,090
1,166,108,546
1,931,426,514
1,532,939,448
762,207,767
815,074,920
1,521,208,785
1,950,436,671
1,266,596,666

示例2: Sample

//引入命名空間
using System;

// This derived class converts the uniformly distributed random 
// numbers generated by base.Sample( ) to another distribution.
public class RandomProportional : Random
{
    // The Sample method generates a distribution proportional to the value 
    // of the random numbers, in the range [0.0, 1.0].
    protected override double Sample( )
    {
        return Math.Sqrt( base.Sample( ) );
    }
   
    public override int Next()
    {
       return (int) (Sample() * int.MaxValue);
    }   
}

public class RandomSampleDemo  
{
    static void Main( )
    {	
        const int rows = 4, cols = 6;
        const int runCount = 1000000;
        const int distGroupCount = 10;
        const double intGroupSize = 
            ( (double)int.MaxValue + 1.0 ) / (double)distGroupCount;

        RandomProportional randObj = new RandomProportional( );

        int[ ]      intCounts = new int[ distGroupCount ];
        int[ ]      realCounts = new int[ distGroupCount ];

        Console.WriteLine( 
            "\nThe derived RandomProportional class overrides " +
            "the Sample method to \ngenerate random numbers " +
            "in the range [0.0, 1.0]. The distribution \nof " +
            "the numbers is proportional to their numeric values. " +
            "For example, \nnumbers are generated in the " +
            "vicinity of 0.75 with three times the \n" +
            "probability of those generated near 0.25." );
        Console.WriteLine( 
            "\nRandom doubles generated with the NextDouble( ) " +
            "method:\n" );

        // Generate and display [rows * cols] random doubles.
        for( int i = 0; i < rows; i++ )
        {
            for( int j = 0; j < cols; j++ )
                Console.Write( "{0,12:F8}", randObj.NextDouble( ) );
            Console.WriteLine( );
        }

        Console.WriteLine( 
            "\nRandom integers generated with the Next( ) " +
            "method:\n" );

        // Generate and display [rows * cols] random integers.
        for( int i = 0; i < rows; i++ )
        {
            for( int j = 0; j < cols; j++ )
                Console.Write( "{0,12}", randObj.Next( ) );
            Console.WriteLine( );
        }

        Console.WriteLine( 
            "\nTo demonstrate the proportional distribution, " +
            "{0:N0} random \nintegers and doubles are grouped " +
            "into {1} equal value ranges. This \n" +
            "is the count of values in each range:\n",
            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( int i = 0; i < runCount; i++ )
        {
            intCounts[ (int)( (double)randObj.Next( ) / 
                intGroupSize ) ]++;
            realCounts[ (int)( randObj.NextDouble( ) * 
                (double)distGroupCount ) ]++;
        }

        // Display the count of each group.
        for( int i = 0; i < distGroupCount; i++ )
            Console.WriteLine( 
                "{0,10}-{1,10}{2,10:N0}{3,12:N5}-{4,7:N5}{5,10:N0}",
                (int)( (double)i * intGroupSize ),
                (int)( (double)( i + 1 ) * intGroupSize - 1.0 ),
                intCounts[ i ],
                ( (double)i ) / (double)distGroupCount,
                ( (double)( i + 1 ) ) / (double)distGroupCount,
                realCounts[ i ] );
    }
}
開發者ID:.NET開發者,項目名稱:System,代碼行數:102,代碼來源:Random.Next

輸出:

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 the number 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.59455719  0.17589882  0.83134398  0.35795862  0.91467727  0.54022658
     0.93716947  0.54817519  0.94685080  0.93705478  0.18582318  0.71272428
     0.77708682  0.95386216  0.70412393  0.86099417  0.08275804  0.79108316
     0.71019941  0.84205103  0.41685082  0.58186880  0.89492302  0.73067715
   
   Random integers generated with the Next( ) method:
   
     1570755704  1279192549  1747627711  1705700211  1372759203  1849655615
     2046235980  1210843924  1554274149  1307936697  1480207570  1057595022
      337854215   844109928  2028310798  1386669369  2073517658  1291729809
     1537248240  1454198019  1934863511  1640004334  2032620207   534654791
   
   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    10,079     0.00000-0.10000    10,148
    214748364- 429496728    29,835     0.10000-0.20000    29,849
    429496729- 644245093    49,753     0.20000-0.30000    49,948
    644245094- 858993458    70,325     0.30000-0.40000    69,656
    858993459-1073741823    89,906     0.40000-0.50000    90,337
   1073741824-1288490187   109,868     0.50000-0.60000   110,225
   1288490188-1503238552   130,388     0.60000-0.70000   129,986
   1503238553-1717986917   149,231     0.70000-0.80000   150,428
   1717986918-1932735282   170,234     0.80000-0.90000   169,610
   1932735283-2147483647   190,381     0.90000-1.00000   189,813

示例3: NoBoundsRandoms

Console.WriteLine(                 
    "This example of the Random.Next( ) methods\n" +
    "generates the following output.\n" );
Console.WriteLine(                 
    "Create Random objects all with the same seed and " +
    "generate\nsequences of numbers with different " +
    "bounds. Note the effect\nthat the various " +
    "combinations of bounds have on the sequences." );

NoBoundsRandoms( 234 );

UpperBoundRandoms( 234, Int32.MaxValue );
UpperBoundRandoms( 234, 2000000000 );
UpperBoundRandoms( 234, 200000000 );

BothBoundsRandoms( 234, 0, Int32.MaxValue );
BothBoundsRandoms( 234, Int32.MinValue, Int32.MaxValue );
BothBoundsRandoms( 234, -2000000000, 2000000000 );
BothBoundsRandoms( 234, -200000000, 200000000 );
BothBoundsRandoms( 234, -2000, 2000 );

// Generate random numbers with no bounds specified.
void NoBoundsRandoms( int seed )
{
    Console.WriteLine( 
        "\nRandom object, seed = {0}, no bounds:", seed );
    Random randObj = new Random( seed );

    // Generate six random integers from 0 to int.MaxValue.
    for( int j = 0; j < 6; j++ )
        Console.Write( "{0,11} ", randObj.Next( ) );
    Console.WriteLine( );
}

// Generate random numbers with an upper bound specified.
void UpperBoundRandoms( int seed, int upper )
{
    Console.WriteLine( 
        "\nRandom object, seed = {0}, upper bound = {1}:", 
        seed, upper );
    Random randObj = new Random( seed );

    // Generate six random integers from 0 to the upper bound.
    for( int j = 0; j < 6; j++ )
        Console.Write( "{0,11} ", randObj.Next( upper ) );
    Console.WriteLine( );
}

// Generate random numbers with both bounds specified.
void BothBoundsRandoms( int seed, int lower, int upper )
{
    Console.WriteLine( 
        "\nRandom object, seed = {0}, lower = {1}, " +
        "upper = {2}:", seed, lower, upper );
    Random randObj = new Random( seed );

    // Generate six random integers from the lower to 
    // upper bounds.
    for( int j = 0; j < 6; j++ )
        Console.Write( "{0,11} ", 
            randObj.Next( lower, upper) );
    Console.WriteLine( );
}
開發者ID:.NET開發者,項目名稱:System,代碼行數:63,代碼來源:Random.Next

輸出:

Create Random objects all with the same seed and generate
sequences of numbers with different bounds. Note the effect
that the various combinations of bounds have on the sequences.

Random object, seed = 234, no bounds:
2091148258  1024955023   711273344  1081917183  1833298756   109460588

Random object, seed = 234, upper bound = 2147483647:
2091148258  1024955023   711273344  1081917183  1833298756   109460588

Random object, seed = 234, upper bound = 2000000000:
1947533580   954563751   662424922  1007613896  1707392518   101943116

Random object, seed = 234, upper bound = 200000000:
194753358    95456375    66242492   100761389   170739251    10194311

Random object, seed = 234, lower = 0, upper = 2147483647:
2091148258  1024955023   711273344  1081917183  1833298756   109460588

Random object, seed = 234, lower = -2147483648, upper = 2147483647:
2034812868   -97573602  -724936960    16350718  1519113864 -1928562472

Random object, seed = 234, lower = -2000000000, upper = 2000000000:
1895067160   -90872498  -675150156    15227793  1414785036 -1796113767

Random object, seed = 234, lower = -200000000, upper = 200000000:
189506716    -9087250   -67515016     1522779   141478503  -179611377

Random object, seed = 234, lower = -2000, upper = 2000:
    1895         -91        -676          15        1414       -1797

示例4: Random

Random rnd = new Random();
string[] malePetNames = { "Rufus", "Bear", "Dakota", "Fido", 
                          "Vanya", "Samuel", "Koani", "Volodya", 
                          "Prince", "Yiska" };
string[] femalePetNames = { "Maggie", "Penny", "Saya", "Princess", 
                            "Abby", "Laila", "Sadie", "Olivia", 
                            "Starlight", "Talla" };                                      

// Generate random indexes for pet names.
int mIndex = rnd.Next(malePetNames.Length);
int fIndex = 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]);
開發者ID:.NET開發者,項目名稱:System,代碼行數:16,代碼來源:Random.Next

輸出:

Suggested pet name of the day:
For a male:     Koani
For a female:   Maggie

示例5: Random

Random rnd = new Random();

Console.WriteLine("\n20 random integers from -100 to 100:");
for (int ctr = 1; ctr <= 20; ctr++) 
{
   Console.Write("{0,6}", rnd.Next(-100, 101));
   if (ctr % 5 == 0) Console.WriteLine();
}

Console.WriteLine("\n20 random integers from 1000 to 10000:");      
for (int ctr = 1; ctr <= 20; ctr++) 
{
   Console.Write("{0,8}", rnd.Next(1000, 10001));
   if (ctr % 5 == 0) Console.WriteLine();
}

Console.WriteLine("\n20 random integers from 1 to 10:");
for (int ctr = 1; ctr <= 20; ctr++) 
{
   Console.Write("{0,6}", rnd.Next(1, 11));
   if (ctr % 5 == 0) Console.WriteLine();
}
開發者ID:.NET開發者,項目名稱:System,代碼行數:22,代碼來源:Random.Next

輸出:

20 random integers from -100 to 100:
65   -95   -10    90   -35
-83   -16   -15   -19    41
-67   -93    40    12    62
-80   -95    67   -81   -21

20 random integers from 1000 to 10000:
4857    9897    4405    6606    1277
9238    9113    5151    8710    1187
2728    9746    1719    3837    3736
8191    6819    4923    2416    3028

20 random integers from 1 to 10:
9     8     5     9     9
9     1     2     3     8
1     4     8    10     5
9     7     9    10     5

示例6: Random

Random rnd = new Random();
string[] malePetNames = { "Rufus", "Bear", "Dakota", "Fido", 
                          "Vanya", "Samuel", "Koani", "Volodya", 
                          "Prince", "Yiska" };
string[] femalePetNames = { "Maggie", "Penny", "Saya", "Princess", 
                            "Abby", "Laila", "Sadie", "Olivia", 
                            "Starlight", "Talla" };                                      

// Generate random indexes for pet names.
int mIndex = rnd.Next(0, malePetNames.Length);
int fIndex = rnd.Next(0, 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]);
開發者ID:.NET開發者,項目名稱:System,代碼行數:16,代碼來源:Random.Next

輸出:

Suggested pet name of the day:
For a male:     Koani
For a female:   Maggie

示例7: Random.Next()

//引入命名空間
using System;

class CondOpApp {
    [STAThread]
    static void Main(string[] args) {
        Random rand = new Random();
        int a = 0, b = 0;

        for (int i = 0; i < 5; i++) {
            a = rand.Next() % 100;
            b = rand.Next() % 100;

            Console.WriteLine("a={0}, b={1}, so the winner is: {2}", a, b, a > b ? 'a' : 'b');
        }
    }
}
開發者ID:C#程序員,項目名稱:System,代碼行數:17,代碼來源:Random.Next

示例8: Random.Next(range)

//引入命名空間
using System;

public class RandomIntegers
{
   public static void Main( string[] args )
   {
      Random randomNumbers = new Random(); 
      int face; 

      for ( int counter = 1; counter <= 20; counter++ )
      {
         face = randomNumbers.Next( 1, 7 );
         Console.Write( "{0}  ", face );
         if ( counter % 5 == 0 )
            Console.WriteLine();
      } 
   }
}
開發者ID:C#程序員,項目名稱:System,代碼行數:19,代碼來源:Random.Next


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