本文整理汇总了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}");
输出:
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 ] );
}
}
输出:
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( );
}
输出:
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]);
输出:
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();
}
输出:
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]);
输出:
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');
}
}
}
示例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();
}
}
}