Objective
Create a class RandomNumber, with three static methods:
- GetFloat will return a number between 0 and 1 using the following algorithm:
seed = (seed * a + c) % m
result = abs(seed / m)
- GetInt(max) will return a number from 0 to max, using:
result = round(max * GetFloat)
- GetInt(min, max) will return a number from min to max (you must create this one totally on your own).
The starting values must be:
m = 233280;
a = 9301;
c = 49297;
seed = 1;
Write Your C# Exercise
C# Exercise Example
// Importing the System namespace for the functionality of Math methods
using System;
public class RandomNumber
{
// Static fields with the values as required
private static int m = 233280; // Modulus
private static int a = 9301; // Multiplier
private static int c = 49297; // Increment
private static int seed = 1; // Seed value
// Static method to get a float between 0 and 1
public static float GetFloat()
{
// Updating the seed using the given algorithm: seed = (seed * a + c) % m
seed = (seed * a + c) % m;
// Calculating the result as the absolute value of (seed / m)
float result = Math.Abs((float)seed / m);
// Returning the result
return result;
}
// Static method to get an integer from 0 to max
public static int GetInt(int max)
{
// Getting a float value between 0 and 1
float randomFloat = GetFloat();
// Calculating the result as the rounded integer value of (max * GetFloat)
int result = (int)Math.Round(max * randomFloat);
// Returning the result
return result;
}
// Static method to get an integer between min and max
public static int GetInt(int min, int max)
{
// Getting a float value between 0 and 1
float randomFloat = GetFloat();
// Calculating the result as the integer between min and max
int result = (int)Math.Round(min + (max - min) * randomFloat);
// Returning the result
return result;
}
}
// Main program to test the RandomNumber class
public class Program
{
public static void Main()
{
// Testing GetFloat to get a random float between 0 and 1
Console.WriteLine($"Random Float: {RandomNumber.GetFloat()}");
// Testing GetInt to get a random integer between 0 and 100
Console.WriteLine($"Random Int (0 to 100): {RandomNumber.GetInt(100)}");
// Testing GetInt with a specific range (e.g., between 50 and 100)
Console.WriteLine($"Random Int (50 to 100): {RandomNumber.GetInt(50, 100)}");
}
}