Gerar uma flutuação aleatória em C#
-
Gerar flutuação aleatória entre
0
e1
com a funçãoRandom.NextDouble()
emC#
-
Gerar flutuação aleatória sem intervalo com a função
Random.NextDouble()
emC#
-
Gerar flutuação aleatória dentro de um intervalo específico com a função
Random.NextDouble()
emC#
-
Gerar flutuação aleatória com a função
Random.NextBytes()
emC#
Neste tutorial, discutiremos métodos para gerar um valor flutuante aleatório em C#.
Gerar flutuação aleatória entre 0
e 1
com a função Random.NextDouble()
em C#
Infelizmente, não existe um método integrado para gerar um número aleatório em C#. Portanto, temos que contar com alguns métodos definidos pelo usuário para atingir esse objetivo. A função Random.NextDouble()
é usada para gerar um valor duplo aleatório entre 0
e 1
. Podemos usar esta função para gerar um valor duplo aleatório entre 0
e 1
e então digitar esse valor aleatório em um float. O exemplo de código a seguir nos mostra como podemos gerar um valor flutuante aleatório entre 0
e 1
com a função Random.NextDouble()
em C#.
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
for (int i = 0; i < 10; i++) {
float randomFloat = (float)rand.NextDouble();
Console.WriteLine("Random Float = {0}", randomFloat);
}
}
}
}
Resultado:
Random Float = 0.3914659 Random Float = 0.8927528 Random Float = 0.6579643 Random Float =
0.4404075 Random Float = 0.3213561 Random Float = 0.3399849 Random Float =
0.04562188 Random Float = 0.1881405 Random Float = 0.7638124 Random Float = 0.1645804
Geramos um valor flutuante aleatório entre 0
e 1
com a função Random.NextDouble()
em C#. Primeiro geramos um valor duplo aleatório entre 0
e 1
e, em seguida, convertemos esse valor duplo em um valor flutuante usando typecasting.
Gerar flutuação aleatória sem intervalo com a função Random.NextDouble()
em C#
Também podemos gerar um valor flutuante aleatório sem definir o intervalo entre 0
e 1
com a função Random.NextDouble()
em C#. O único intervalo neste método é o intervalo de valores que o tipo de dados float pode conter. Podemos usar float.MaxValue
e float.MinValue
para especificar os valores máximo e mínimo que o tipo de dados float pode armazenar. O exemplo de código a seguir nos mostra como gerar um valor flutuante aleatório sem especificar um intervalo com a função Random.NextDouble()
em C#.
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
double range = (double)float.MaxValue - (double)float.MinValue;
for (int i = 0; i < 10; i++) {
double sample = rand.NextDouble();
double scaled = (sample * range) + float.MinValue;
float f = (float)scaled;
Console.WriteLine(f);
}
}
}
}
Resultado:
1.500952E+38 - 1.930891E+38 2.951987E+38 - 1.205054E+38 - 6.225039E+37 3.843309E+36 -
1.241292E+38 1.360907E+38 1.769061E+38 - 1.577001E+38
Geramos um valor flutuante aleatório sem intervalo com a função Random.NextDouble()
em C#. Inicializamos a variável dupla range
com float.MaxValue - float.MinValue
e, em seguida, convertemos em tipo de dados double. Isso garante que o intervalo de valores aleatórios permaneça dentro do intervalo de valores que um tipo de dados float pode manipular. Calculamos o valor aleatório multiplicando o valor retornado pela função Random.NextDouble()
com o range
e adicionando float.MinValue
ao resultado. No final, convertemos o valor aleatório em tipo de dados float com typecasting.
Gerar flutuação aleatória dentro de um intervalo específico com a função Random.NextDouble()
em C#
Também podemos gerar um valor aleatório dentro de um intervalo específico com a função Random.NextDouble()
em C#. Por exemplo, suponha que tenhamos que gerar um valor flutuante aleatório entre 1
e 10
. Nesse caso, podemos gerar um valor aleatório entre 0
e 1
com a função Random.NextDouble()
, multiplicá-lo pelo intervalo e adicionar o valor mínimo a ele. O exemplo de código a seguir nos mostra como gerar um número aleatório entre um intervalo especificado com a função Random.NextDouble()
em C#.
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
double min = 1;
double max = 10;
double range = max - min;
for (int i = 0; i < 10; i++) {
double sample = rand.NextDouble();
double scaled = (sample * range) + min;
float f = (float)scaled;
Console.WriteLine(f);
}
}
}
}
Resultado:
3.468961 8.04868 2.210197 8.150612 4.217263 5.328617 4.730082 8.462176 2.679844 8.609394
Geramos um valor flutuante aleatório entre 1
e 10
com a função Random.NextDouble()
em C#. Especificamos os valores min
e max
e calculamos o range
com range = max - min
. Calculamos o valor aleatório multiplicando o valor retornado pela função Random.NextDouble()
com o range
e adicionando min
ao resultado. No final, convertemos o valor aleatório em tipo de dados float com typecasting.
Gerar flutuação aleatória com a função Random.NextBytes()
em C#
Também podemos gerar um valor flutuante aleatório com a função Random.NextBytes()
em C#. A função [Random.NextBytes(byte[])
] é usada para preencher o array byte[]
com valores de bytes aleatórios. Podemos gerar valores flutuantes aleatórios convertendo os bytes armazenados em byte[]
para o tipo de dados flutuante. O exemplo de código a seguir nos mostra como podemos gerar um valor flutuante aleatório com a função Random.NextBytes()
em C#.
using System;
namespace random_float {
class Program {
static void Main(string[] args) {
Random rand = new Random();
for (int i = 0; i < 10; i++) {
var array = new byte[4];
rand.NextBytes(array);
float randomFloat = BitConverter.ToSingle(array, 0);
Console.WriteLine("Random Value = {0}", randomFloat);
}
}
}
}
Resultado:
Random Value = 2.021232E-20 Random Value = -121623 Random Value = -1.564382E+38 Random Value =
1.146448E-14 Random Value = -6.874067E-22 Random Value = -1.226989E+31 Random Value =
-3.01435E+08 Random Value = -8.568415E+30 Random Value = -1.454825E+27 Random Value =
3.801608E-26
Geramos um valor flutuante aleatório com a função Random.NextBytes()
em C#. Preenchemos o array array
com valores de bytes aleatórios com a função Random.NextBytes()
. Convertemos os valores de byte em float com a função BitConverter.ToSingle()
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn