Número Aleatorio - Ejercicio De Programacion C# Sharp

En este ejercicio de C#, se debe crear una clase llamada RandomNumber que contenga tres métodos estáticos. El primero de estos métodos, GetFloat, debe devolver un número entre 0 y 1 utilizando el siguiente algoritmo:

seed = (seed * a + c) % m
result = abs(seed / m)

El segundo método, GetInt(max), debe devolver un número entero entre 0 y un valor máximo dado (max) utilizando el siguiente cálculo:

result = round(max * GetFloat)

El tercer método, GetInt(min, max), debe devolver un número entero entre un valor mínimo (min) y un valor máximo (max), y deberá ser implementado completamente por ti mismo. Este método representa un reto adicional, ya que necesitarás crear un algoritmo que funcione con los parámetros mínimos y máximos proporcionados.

Los valores iniciales deben ser los siguientes:

m = 233280;
a = 9301;
c = 49297;
seed = 1;

Este ejercicio es útil para practicar la creación de métodos estáticos, el manejo de algoritmos y la generación de números aleatorios en C#. Además, enseña cómo usar variables estáticas dentro de una clase para implementar un generador de números aleatorios.

 Categoría

POO Más sobre Clases

 Ejercicio

Número Aleatorio

 Objectivo

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;

 Ejemplo Ejercicio C#

 Copiar Código C#
// 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)}");
    }
}

 Salida

Random Float: 0.2511917
Random Int (0 to 100): 55
Random Int (50 to 100): 67

 Comparte este Ejercicio C# Sharp

 Más Ejercicios de Programacion C# Sharp de POO Más sobre Clases

¡Explora nuestro conjunto de ejercicios de programación C# Sharp! Estos ejercicios, diseñados específicamente para principiantes, te ayudarán a desarrollar una sólida comprensión de los conceptos básicos de C#. Desde variables y tipos de datos hasta estructuras de control y funciones simples, cada ejercicio está diseñado para desafiarte de manera gradual a medida que adquieres confianza en la codificación en C#.

  •  Texto a HTML

    En este ejercicio de C#, se debe crear una clase llamada TextToHTML, que debe ser capaz de convertir varios textos ingresados por el usuario en una secuencia d...

  •  Clase ScreenText

    En este ejercicio de C#, se debe crear una clase llamada ScreenText, que se encargará de mostrar un texto en las coordenadas especificadas de la pantalla. La c...

  •  Clase ComplexNumber mejorada

    En este ejercicio de C#, se debe mejorar la clase ComplexNumber para sobrecargar los operadores + y - con el fin de permitir la suma y la resta d...

  •  Punto 3D

    En este ejercicio de C#, se debe crear una clase llamada Point3D para representar un punto en el espacio tridimensional, con coordenadas X, Y y Z. La clase deb...

  •  Catálogo + Menú

    En este ejercicio de C#, se debe mejorar el programa del catálogo para que el método Main muestre un menú que permita ingresar nuevos datos de cualquier tipo, ...

  •  Matriz de objetos: tabla

    En este ejercicio, debes crear una clase llamada "Table". Esta clase debe tener un constructor que reciba el ancho y alto de la mesa. La clase...