Número aleatorio Ejercicio C# - Curso de Programación C# (C Sharp)

 Ejercicio

Número aleatorio

 Objetivo

Cree una clase RandomNumber, con tres métodos estáticos:

- GetFloat devolverá un número entre 0 y 1 utilizando el siguiente algoritmo:

semilla = (semilla * a + c) % m
resultado = abs(semilla / m)

- GetInt(max) devolverá un número de 0 a max, usando:
resultado = round(max * GetFloat)

- GetInt(min, max) devolverá un número de min a max (debes crear este totalmente por tu cuenta).

Los valores iniciales deben ser:
m = 233280;
a = 9301;
c = 49297;
semilla = 1;

 Código de Ejemplo

// 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)}");
    }
}

Más ejercicios C# Sharp de POO Más sobre Clases

 Matriz de objetos: tabla
Cree una clase denominada "Table". Debe tener un constructor, indicando el ancho y alto de la placa. Tendrá un método "ShowData" que escribirá en la p...
 House
Cree una clase "House", con un atributo "area", un constructor que establezca su valor y un método "ShowData" para mostrar "Soy una casa, mi área es d...
 Tabla + coffetable + array
Cree un proyecto denominado "Tablas2", basado en el proyecto "Tablas". En él, cree una clase "CoffeeTable" que herede de "Table". Su método "ShowDa...
 Encriptador
Cree una clase "Encrypter" para cifrar y descifrar texto. Tendrá un método "Encrypt", que recibirá una cadena y devolverá otra cadena. Será un méto...
 Números complejos
Un número complejo tiene dos partes: la parte real y la parte imaginaria. En un número como a+bi (2-3i, por ejemplo) la parte real sería "a" (2) y la ...
 tabla + coffetable + leg
Amplíe el ejemplo de las tablas y las mesas de centro, para agregar una clase "Leg" con un método "ShowData", que escribirá "I am a leg" y luego mostr...
 Catálogo
Cree el diagrama de clases y, a continuación, con Visual Studio, un proyecto y las clases correspondientes para una utilidad de catálogo: Podrá alm...
 Texto a HTML
Crear una clase "TextToHTML", que debe ser capaz de convertir varios textos introducidos por el usuario en una secuencia HTML, como esta: Hola Soy...
 Clase ScreenText
Cree una clase ScreenText, para mostrar un texto determinado en coordenadas de pantalla especificadas. Debe tener un constructor que recibirá X, Y y l...
 Clase ComplexNumber mejorada
Mejore la clase "ComplexNumber", para que sobrecargue los operadores + y - para sumar y restar números....
 Punto 3D
Cree una clase "Point3D", para representar un punto en el espacio 3D, con coordenadas X, Y y Z. Debe contener los siguientes métodos: MoveTo, que c...
 Catálogo + Menú
Mejorar el programa Catálogo, de forma que "Principal" muestre un menú que permita introducir nuevos datos de cualquier tipo, así como visualizar todo...

Juan A. Ripoll - Tutoriales y Cursos de Programacion© 2025 Todos los derechos reservados.  Condiciones legales.