Löst: slumpmässig flyta mellan två tal

Senaste uppdateringen: 09/11/2023
Författare: C SourceTrail

Generera slumpmässigt flytande mellan två tal i C#

Att generera slumpmässiga flyttal är en vanlig operation i många programmeringsapplikationer, särskilt inom spelutveckling, statistiska simuleringar och vetenskaplig forskning. Genom att använda programmeringsspråket C# hittar du ett robust ramverk för att skapa och manipulera flyttal efter behov. Den här artikeln är tillägnad att förklara en enkel metod för att skapa ett slumpmässigt flyt mellan två specifika tal.

Lösning: Generering av slumpmässig flytande mellan två tal i C#

.NET Framework tillhandahåller en inbyggd klass som heter "Random" som kan användas för att generera slumptal. Den här klassen fungerar dock vanligtvis bättre med att generera heltal. För att generera en slumpmässig float, kommer vi att göra en liten modifiering.

offentlig statisk float RandomFloatBetween(float min, float max)
{
Random random = new Random();
dubbelt område = max – min;
dubbelprov = random.NextDouble();
dubbelskalad = (prov * intervall) + min;
returnera (flyta) skalad;
}

I det här kodavsnittet initierar vi först en ny instans av klassen Random. Sedan fastställer vi intervallet för det slumpmässiga talet som skillnaden mellan högsta och lägsta värden. Efter det får vi en slumpmässig dubblering mellan 0 och 1 (vilket är vad NextDouble() ger), skalar det till vårt intervall, lägger till minimivärdet och konverterar till float.

Steg-för-steg-förklaringen av koden

Låt oss bryta ner koden för att ytterligare förstå varje steg i att generera en slumpmässig float.

  • Metoden börjar med att deklarera och initiera en ny instans av klassen Random. Den initierade Random-klassen kan generera praktiskt taget alla slumpmässiga heltal och dubblar.
  • Beräkningen av siffrorna inom våra önskade gränser utförs sedan med de min- och maxvärden som skickas till metoden.
  • Vi kör sedan metoden NextDouble() på vår slumpvariabel. Funktionen NextDouble() är vad som faktiskt genererar "slumpen" här; den ger ett slumpmässigt dubbeltal större än eller lika med 0.0 och mindre än 1.0.
  • Vi skalar sedan den slumpmässiga dubbleringen mellan 0 och 1 till vårt intervall genom att multiplicera det till intervallet.
  • Lägg tillbaka minimivärdet för att flytta vårt sortiment till den ursprungliga platsen.
  • Som ett sista steg konverterar vi dubbeln till en float med en explicit konvertering.

Nyckelkonceptet bakom att generera en slumpmässig float kom från möjligheten att generera en slumpmässig dubbel med en inbyggd metod.

.NET Random Class och NextDouble()-funktionen

Klassen Random är en grundläggande del av .NET Framework och finns i ett brett utbud av applikationer och situationer där slumpmässiga värden krävs. Den levereras med en mängd metoder, men för att generera vår slumpmässiga float använde vi NextDouble-metoden. Denna metod är utformad för att returnera ett slumptal mellan 0 och 1.

Det är värt att notera att klassen Random producerar pseudoslumptal – tal som, även om de inte är riktigt slumpmässiga, tjänar de flesta syften ganska adekvat. Men för applikationer som kräver starkare slumpmässighet kan ett annat tillvägagångssätt behövas.

Flytpunktsarithmetik i C#

Flyttal är en avgörande del av praktiskt taget alla programmeringsspråk, och C# är inte annorlunda. De används när vi behöver representera icke-heltal, och finns i två varianter – flytande och dubbel.

Att konvertera vårt slumpmässiga dubbla värde till en float är en enkel men viktig process, eftersom den säkerställer att vårt slutvärde är i det format vi kräver. Detta beror på de olika nivåerna av precision och räckvidd som erbjuds av float- och dubbeltyperna.

Nu har du en idé om hur du genererar slumpmässigt float i C#, det är dags att använda denna kunskap för att få lite spontant beteende till dina program. Oavsett om det är spelsimuleringar, numeriska metoder eller stokastisk programmering, kommer förståelse av slumpmässig generering att vara ett kraftfullt verktyg för alla utvecklare.

Relaterade inlägg: