, 유효한 값 "RandNumb (1, 10, 2)"될 것 같다 :이 경우에는 1, 3, 5, 7, 9
한다. 코드는 같을 것이다
class Program
{
static void Main(string[] args)
{
Random rd = new Random();
for (int i = 0; i < 10; i++)
{
Console.WriteLine("RandNumb(rd, 1, 10, 2)=" + RandNumb(rd, 1, 10, 2));
Console.WriteLine("RandNumb(rd, 100, 1000, 500)=" + RandNumb(rd, 100, 1000, 500));
Console.WriteLine("RandNumb(rd, 0.001, 0.1, 0.01) =" + RandNumb(rd, 0.001, 0.1, 0.01));
}
Console.ReadLine();
}
public static double RandNumb(Random rd, double min, double max, double step)
{
int range = (int)Math.Floor((max - min)/step);
int stepCount = rd.Next(0, range + 1);
return min + (step * stepCount);
}
}
그리고 그 결과는 다음과 같습니다
RandNumb(rd, 1, 10, 2)=3
RandNumb(rd, 100, 1000, 500)=600
RandNumb(rd, 0.001, 0.1, 0.01) =0,071
RandNumb(rd, 1, 10, 2)=5
RandNumb(rd, 100, 1000, 500)=600
RandNumb(rd, 0.001, 0.1, 0.01) =0,041
RandNumb(rd, 1, 10, 2)=3
RandNumb(rd, 100, 1000, 500)=600
RandNumb(rd, 0.001, 0.1, 0.01) =0,081
RandNumb(rd, 1, 10, 2)=9
RandNumb(rd, 100, 1000, 500)=600
RandNumb(rd, 0.001, 0.1, 0.01) =0,011
RandNumb(rd, 1, 10, 2)=7
RandNumb(rd, 100, 1000, 500)=100
RandNumb(rd, 0.001, 0.1, 0.01) =0,091
RandNumb(rd, 1, 10, 2)=5
RandNumb(rd, 100, 1000, 500)=100
RandNumb(rd, 0.001, 0.1, 0.01) =0,001
RandNumb(rd, 1, 10, 2)=1
RandNumb(rd, 100, 1000, 500)=600
RandNumb(rd, 0.001, 0.1, 0.01) =0,071
RandNumb(rd, 1, 10, 2)=1
RandNumb(rd, 100, 1000, 500)=600
RandNumb(rd, 0.001, 0.1, 0.01) =0,061
RandNumb(rd, 1, 10, 2)=5
RandNumb(rd, 100, 1000, 500)=100
RandNumb(rd, 0.001, 0.1, 0.01) =0,041
RandNumb(rd, 1, 10, 2)=3
RandNumb(rd, 100, 1000, 500)=600
RandNumb(rd, 0.001, 0.1, 0.01) =0,021
"RandNumb (1, 10, 2)"되지 않을 것 1, 3, 5, 7, 9에 유효한 값을? – Hailton
오 그래, 네가 맞아. 미안해! –